ra1*_*170 34 jquery html-select
我有一个下拉列表: <asp:DropDownList id="dropdownid" runat="server" class=blah"/>
在我的jQuery中,我分配如下的更改事件:
$('#dropdownid').change(function() {......});
Run Code Online (Sandbox Code Playgroud)
现在,当我从下拉列表中选择不同的值时,这是有效的,但是,假设我想再次选择相同的值.(因为我想用相同的值进行另一个调用)所以,当我再次选择它时(不改变值)只需单击下拉列表中的选定值并再次"选择"它,就不会触发任何事件.我必须分配给jquery中的另一个事件吗?什么是解决方法?
RSo*_*erg 28
为了扩展Vincent Ramdhanie的建议,看看做这样的事情.从本质上讲,您最终会得到自己的jQuery函数,可以在其他地方重复使用.
第1步:创建jQuery函数
(function($) {
$.fn.selected = function(fn) {
return this.each(function() {
var clicknum = 0;
$(this).click(function() {
clicknum++;
if (clicknum == 2) {
clicknum = 0;
fn(this);
}
});
});
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
第2步:确保引用新创建的jQuery Function的文件以供使用:
<script src="Scripts/jqDropDown.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
第3步:利用新功能:
$('#MyDropDown').selected(function() {
//Do Whatever...
});
Run Code Online (Sandbox Code Playgroud)
原始信息
使用您当前的代码库,从asp:DropDownList中选择相同的值不会触发更改事件.
您可以尝试为.blur事件添加另一个jQuery函数.当控件失去焦点时会触发:
$('#dropdownid').blur(function() {......});
Run Code Online (Sandbox Code Playgroud)
如果它们模糊功能对你不起作用,我会添加一个刷新按钮或其他东西来激发你想要使用的功能.
Vin*_*nie 16
试试这个:
$(document).ready(function(){
var clicknum = 0;
$("#dropdownid").click(function(){
clicknum++;
if(clicknum == 2){
alert($(this).val());
clicknum = 0;
}
});
});
Run Code Online (Sandbox Code Playgroud)
首先,您要创建一个变量clicknum来跟踪点击次数,因为您不希望每次用户点击下拉框时触发该事件.第二次单击是用户进行的选择.
如果单击num恰好是2,那么这是第二次单击,因此触发事件并将clicknum重置为0以供下次使用.否则什么都不做.
只需将事件处理程序点击到所附的选项控件而不是select:
$('#dropdownid option').click(function() {......});
Run Code Online (Sandbox Code Playgroud)
这只会在您从下拉列表中选择一个选项时触发,无论它是否发生变化.