当选择相同的值时,jQuery选择更改事件

问题描述:

如何处理select的折叠事件,或者即使所选选项没有更改,也会触发更改事件?当选择相同的值时,jQuery选择更改事件

我需要有一个搜索引擎,如果选择的选项相同,吉祥物仍然会移动。搜索引擎是在这个页面上:http://www.marocpneus.com

例如,如果继续并点击第一个选择“Type devéhicule”并选择已被选择的“Tourisme”,则该字符不会移动到第二选择。但是,如果您确实将“Tourisme”更改为其他值之一,那么角色的确会使用传统的jQuery更改事件进行移动。

+0

我不相信有'崩溃'(或同等)的事件。但我很想被证明是错误的。 – 2013-03-16 17:08:22

+1

只有在值发生变化时才会触发更改事件,您可能必须触发自定义事件或在选项中使用点击事件等。 – adeneo 2013-03-16 17:09:28

+1

@adeneo点击选项对我来说不起作用。我使用这段代码来测试它,但它不会触发:$('select option')。click(function(){console.log(“CLICKED”)}); 你能举个例子吗? – 2013-03-16 17:25:34

好了,经过一番研究,它看起来像选择选项CLIK不能被解雇了,由于浏览器incomptability(看这太问题:Event attached to Option node not being fired

...但我们可以模拟一下,做一个变通方法, XD,你这里有小提琴:http://jsfiddle.net/H9gg5/3

的js

$('select.click_option').click(function() { 
    if ($(this).data('clicks') == 1) { 
     // Trigger here your function:  
     console.log('Selected Option: ' + $(this).val()); 
     $(this).data('clicks', 0); 
    } else { 
     console.log('first click'); 
     $(this).data('clicks', 1); 
    } 
}); 

$('select.click_option').focusout(function() { 
    $(this).data('clicks', 0); 
}); 

的Html

<select class="click_option"> 
     <option value="1"> Selected 1 </option> 
     <option value="2"> Selected 2 </option> 
</select> 

它是做什么的?好吧,我们知道我们已经选择了一个选项(即使是相同的选项),因为我们在选择上点击两次,因此,只需计算点击次数,并在之前的点击之后触发它,触发XD。该代码还处理失去焦点,因为如果您单击选择,它将关闭clicks = 1,您必须重置它。

我在select中添加了一个类,用于在用户单击所需的选择时触发该功能。

希望它有帮助,问候!

+0

谢谢 - 解决这个问题的好方法。 – 2014-02-19 10:33:44