gpt4 book ai didi

javascript - How to receive an event when selected option is the already selected option of a dropdown?

转载 作者:数据小太阳 更新时间:2023-10-29 03:57:55 24 4
gpt4 key购买 nike

动机:

我想用 AJAX 调用的值动态加载一个 select,并允许用户在加载后选择列表中的第一个项目,它获得焦点后,现在,第一个项目是选中的项目,当您单击下拉列表并单击第一个项目时,没有任何反应。我无法添加任何不是有效选择的占位符项目。

问题:

当当前选择的选项被重新选择/未更改时,如何在 jQuery 中触发 .change 事件?

鉴于以下情况:

<select id="myoptions">
<option id="one" >Option 1</option>
<option id="two">Option 2</option>
</select>

假设选择了选项 one,然后我单击下拉菜单并再次选择 one,会触发什么事件?

$('#myoptions').change(function() {
alert('You selected something!');
}

如果我选择不同的东西,上面的代码可以工作,但如果我选择当前选择的选项,则没有任何反应。

换句话说:

如果我点击下拉菜单并“选择”当前选择的选项,我该如何触发事件?

不回答:

所有这些关于trigger 的建议都不是解决方案,我需要在我用鼠标单击Option 1 时触发的东西Option 1 已被选中时。

我尝试使用 .click 也没有任何反应。

对于第一次选择下拉菜单,并且有人选择默认选择选项的用例,没有一个答案是有效的解决方案。没有任何反应。

focusout 不是解决方案,它不会发生,直到有人点击其他地方,这在游戏中为时已晚。

最佳答案

您可以使用点击事件或 focusout。如果用户仅使用 tab + enter 等键盘,则单击事件将不起作用,但 focusout 将起作用。

编辑:

添加了一个演示:http://jsfiddle.net/fPRe7/即使您单击选定的项目,也可以单击。

$("#myoptions").on("click", function(){
console.debug("click");
});

$("#myoptions").on("change", function(){
console.debug("changed");
});
$("#myoptions").on("focusout", function(){
console.debug("focusout");
});

Chrome 只会获得 1 次点击(选择一个),但 FF 将获得 2 次点击,当您打开选择时点击一次,选择一个时点击一次。

关于javascript - How to receive an event when selected option is the already selected option of a dropdown?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16513638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com