我有一个加载了AJAX的下拉列表,它在更改时运行一个函数,但如果单击已选中的选项,我还希望它运行该函数。 (例如,有人连续两次选择选项A,我希望它能同时运行该功能,而不必在它们之间选择不同的选项)
JAVASCRIPT:
$(document).on('change','#dropdown',function(e){
//do stuff
}
HTML:
<select id="dropdown">
<option value="optionA">option A</option>
<option value="optionB">option B</option>
<option value="optionC">option C</option>
</select>
答案 0 :(得分:0)
需要进行一些实验,但有一种方法可以检测是否点击了选择的下拉菜单。
将代码移动到click
事件中,并在其周围包装if标记:
if(event.pageY<0)
{
// The dropdown menu on the select was clicked!
}
只需要这个if
的原因是因为我已经设法对这两个浏览器进行了测试,使得它看起来像事件页面之外的光标被触发了。
您可以在http://jsfiddle.net/Entoarox/ATm43/找到该演示。
事件对象的pageY
属性是jQuery针对跨浏览器一致性进行规范化的属性之一。
http://api.jquery.com/category/events/event-object/
将您的change
脚本替换为:
$(document).on('click','#dropdown',function(event){
if(event.pageY >= 0) return; // return and don't do anything
// The dropdown menu on the select was clicked!
// do stuff
});
答案 1 :(得分:-2)
使用
$(document).on('select','#dropdown',function(e){
//do stuff
}
或
$(document).on('click','#dropdown',function(e){
//do stuff
}