连续两次选择选项时运行功能

时间:2013-12-17 21:02:13

标签: javascript jquery html

我有一个加载了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>

2 个答案:

答案 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
}