【问题标题】:jQuery select change event when selecting the same value选择相同值时的jQuery选择更改事件
【发布时间】:2013-03-05 07:55:33
【问题描述】:

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

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

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

【问题讨论】:

  • 我不相信存在“崩溃”(或等效)事件。但我很想被证明是错误的。
  • 更改事件仅在值更改时触发,您可能必须触发自定义事件或在选项上使用点击事件等。
  • @adeneo 单击选项对我不起作用。我正在使用此代码对其进行测试,但它不会触发: $('select option').click(function(){console.log("CLICKED")});可以举个例子吗?

标签: jquery select collapse


【解决方案1】:

好的,经过一些研究,由于浏览器不兼容,似乎无法触发选择选项 clik(看这个 SO 问题: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 时关闭,您必须重置它。

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

希望对你有帮助,问候!

【讨论】:

    猜你喜欢
    • 2015-12-29
    • 2013-05-24
    • 2012-09-26
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2016-09-28
    相关资源
    最近更新 更多