jQuery UI--按钮组按钮并不总是在第一次点击时工作

问题描述:

我正在使用jQuery UI按钮组(基于几个单选按钮)。一切工作都很好,除非有时当你点击其中一个按钮时什么也没有发生(就好像你从来没有点击过它一样)。我想也许这也许是我的执行有问题,所以我去了现场演示:jQuery UI--按钮组按钮并不总是在第一次点击时工作

http://jqueryui.com/demos/button/#radio

而且花了些时间点击周围的不同选择之间翻转。我有同样的问题!随机点击将被忽略!

我碰到这个网站:

http://www.filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_jquery_ui_css_framework/

哪个推出自己的版本,我无法复制同样的问题。这导致我相信jQuery UI实现有一些小小的怪癖吗?

有没有人看到这个?我花了一些时间试图找到其他人有同样的问题,并没有发现任何提及它。其他人看到同样的问题吗?

这也发生在我身上。

我认为问题在于,您必须在点击按钮时仍然保持鼠标不动,否则它将无法工作。

例如,尝试按慢速移动鼠标时按下按钮。除非鼠标几乎没有移动,否则按钮将不起作用。也可以尝试拖动即使只有一个像素的按钮,然后释放。

您遇到该网站的网站似乎使用mousedown来避免此问题。他们也在使用旧版本的jQuery UI,这可能是一个因素。

+1

同样在这里,这太可怕了!有没有这个jQuery的错误? – ack

+0

亚似乎是这样的:http://bugs.jqueryui.com/ticket/5454 –

+1

@NadirMuzaffar我认为这是一个更好的bug请求来捕获细节:http://bugs.jqueryui.com/ticket/7665 – Brombomb

$("#radio").buttonset(); 
$("#radio").find("label").unbind("mouseup"); 

因为jQuery的源代码有:

.bind("mouseup" + this.eventNamespace, function(event) { 
    if (options.disabled) {return; } 
    if (startXPos !== event.pageX || startYPos !== event.pageY) { 
        clickDragged = true; 
    } 
} 
+0

我试过这个解决方法 - 它的工作原理:当我点击鼠标时移动鼠标,按钮状态仍然被切换。谢谢! – Kel

+0

这对Chrome和IE很有效,但在阅读上面发布的链接时,我注意到了[link](http://bugs.jqueryui.com/ticket/7665)中的一条评论,这与Firefox的行为有关特定。在测试中,我发现解除绑定似乎在Firefox中产生了奇怪的不利影响。 – Nato

+0

不幸的是,在Firefox上,所有这一切都产生了一种错觉,即它能够工作(输入图形更改但不触发更改事件) – pete