Javascript 当值相同时,在select上触发事件

Javascript 当值相同时,在select上触发事件,javascript,jquery,Javascript,Jquery,当用户更改选择菜单中的选择时,我触发了一个事件。正如您所想象的,当用户选择一个与现有选项不同的选项时,它会起作用,但当它相同时,什么也不会发生。我试着把它改成点击事件,但没有效果 如果有人对此有什么建议,我们将不胜感激 我已经找到了一些解决这个问题的办法,但没有一个对我有效 如果这对你有影响的话,我也在使用主干 我的活动如下所示: 'change .js-select' : 'show_colours', 更新: 谢谢你的反馈 我的设想是这样的 我有四个选择菜单,其中0、1和2是选

当用户更改选择菜单中的选择时,我触发了一个事件。正如您所想象的,当用户选择一个与现有选项不同的选项时,它会起作用,但当它相同时,什么也不会发生。我试着把它改成点击事件,但没有效果

如果有人对此有什么建议,我们将不胜感激

我已经找到了一些解决这个问题的办法,但没有一个对我有效

如果这对你有影响的话,我也在使用主干

我的活动如下所示:

'change .js-select'       : 'show_colours',
更新:

谢谢你的反馈

我的设想是这样的

我有四个选择菜单,其中0、1和2是选项。如果用户选择除零以外的任何颜色,则在其下方将显示一块彩色瓷砖,以便用户可以单击颜色。这对于所有选择菜单都是相同的

现在由于空间不足,用户一次只能打开一块颜色。因此,如果用户想要返回并更改一个封闭色块上的颜色,他们需要选择一个不同于他们已有的选项,因为如果他们选择相同的选项,打开色块的事件将不会触发


我希望这是清楚的。

您可以尝试以下内容:

var open = false;
$('select').on('mouseup', function () {
    if (open) alert(this.value);
    open = !open;
});

更新

由于这在触摸设备上不起作用,我们也应该监听
更改
-事件:

var open = false;
$('select').on('mouseup change', function (e) {
    if (open || e.type === 'change') alert(this.value);
    open = !open;
});

为什么单击事件处理程序不工作?你能发布你的处理程序代码吗?JavaScript与选择框接口的大部分方式是通过引用每个框的相关值。在不了解您的场景的情况下,我所能提供的最多方法是使您的值唯一并有条件地将多个值视为相同的值,或者以某种方式将ID附加到选项并以某种方式与标记本身接口。但是,如果没有唯一值,我不确定这将如何工作。@abhitalks、iirc、onClick不是为元素激发的。@Swivelgames,是的。@Swivelgames您提供的链接不是为“选择”,而是为“选项”。但是,是的,我已经同意你关于正确使用的观点请停火!感谢您的反馈,虽然这在Chrome中似乎不起作用,但在firefox中却起作用:sStrange I也有28.0.1500.95,在Mac os x 10.6上有im。8@DavidJones哪一个例子不起作用,第一个还是后面的?+1表示mouseup@DavidJones它肯定能在Chrome上工作。但是,Chrome稍微推迟了启动活动。如果你快速点击,它就会错过,点击就会被触发。如果您按下按钮(鼠标向下),然后缓慢释放按钮(鼠标向上),它将正常工作。与IE9的行为相同。不,小提琴在chrome中似乎仍然不起作用,我现在在家(最初是在工作中试用的)在我的mac book air上运行chrome 28.0.1500.95,但它在firefox中起作用