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

Posted

技术标签:

【中文标题】选择相同值时的jQuery选择更改事件【英文标题】:jQuery select change event when selecting the same value 【发布时间】: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"));可以举个例子吗? 【参考方案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 时关闭,您必须重置它。

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

希望对你有帮助,问候!

【讨论】:

以上是关于选择相同值时的jQuery选择更改事件的主要内容,如果未能解决你的问题,请参考以下文章

使用选择选项下拉更改图像,但对于多个事件?

在mat-select上重新选择相同值时触发事件

jQuery选择更改事件获取选择的选项

更改时的jQuery文件输入未触发

在选择更改事件上通过 jquery 提交表单

当我在选择上使用向上或向下箭头时,为啥 jquery 更改事件不触发?