8

如何处理选择的折叠事件,或者即使选择的选项没有更改也触发更改事件?

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

例如,如果您继续单击第一个选择“Type de véhicule”并选择已选择的“Tourisme”,则角色不会移动到第二个选择。但是,如果您确实将“Tourisme”更改为其他值之一,则角色确实会使用经典的 jQuery 更改事件移动。

4

1 回答 1

12

好的,经过一些研究,由于浏览器不兼容,似乎无法触发选择选项单击(看看这个 SO 问题:附加到选项节点的事件未被触发

...但我们可以模拟点击,以解决问题,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 时关闭,您必须重置它。

我在选择中添加了一个类,仅在用户单击您想要的选择时触发该功能。

希望它有帮助,问候!

于 2014-01-26T10:30:06.167 回答