jQuery选择器在同一个选项上的更改事件

3
这里是我的简单代码:
$(".test").change(function(){
    alert("user clicked");
});

<select class="test">
    <option value="1">test1</option>
    <option value="2">test2</option>
</select>

一切都很简单且可行,但我希望在用户更改选项的同时,还能调用该函数,即使当他点击已选中的相同选项时也会触发该函数。我尝试了click事件,但它在用户点击任何选项之前就被触发了,我该怎么办呢?


您的意思是希望在选择框具有焦点时触发该函数吗? - Jory Cunningham
如果在点击处理程序中有警报,您将无法选择选项,您将失去焦点。 - Musa
@Musa 我不会有警告框,这只是一个例子。 - Linas
2个回答

2

在谷歌浏览器中无法工作。

$(".test option").click(function(e){
    console.log('click');
});

更新了你的代码片段。

将点击事件放在选项上。

编辑:看起来这并不容易实现,需要使用click事件来选择并比较它被点击的位置,或者类似于那样的一些奇怪方法。

我不确定最终目标是什么,但如果您在最初点击时可以进行额外的处理,那么对选择进行点击可能会起作用。

关于此问题的另一篇文章:


抱歉,我测试时不够仔细。这是有效的,但显然不受支持。 - Rob Allen

1
如果您的意思是选择中只有一件事情(就像我遇到的问题一样),您可以创建一个默认禁用的选项,并将其设置为已选。这意味着如果您只有一个选项,onchange事件会触发,因为先前选择的是禁用的选项:
<option disabled selecte>Select an option</option>
<option> Only Option </option>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接