2011-11-19 76 views
12

我正在使用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實現有一些小小的怪癖嗎?

有沒有人看到這個?我花了一些時間試圖找到其他人有同樣的問題,並沒有發現任何提及它。其他人看到同樣的問題嗎?

回答

8

這也發生在我身上。

我認爲問題在於,您必須在點擊按鈕時仍然保持鼠標不動,否則它將無法工作。

例如,嘗試按慢速移動鼠標時按下按鈕。除非鼠標幾乎沒有移動,否則按鈕將不起作用。也可以嘗試拖動即使只有一個像素的按鈕,然後釋放。

您遇到該網站的網站似乎使用mousedown來避免此問題。他們也在使用舊版本的jQuery UI,這可能是一個因素。

+1

同樣在這裏,這太可怕了!有沒有這個jQuery的錯誤? – ack

+0

亞似乎是這樣的:http://bugs.jqueryui.com/ticket/5454 –

+1

@NadirMuzaffar我認爲這是一個更好的bug請求來捕獲細節:http://bugs.jqueryui.com/ticket/7665 – Brombomb

7
$("#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

相關問題