2010-09-17 111 views
26

當我點擊一個jQuery UI按鈕時,它仍然會觸發單擊事件回調。我如何阻止該事件?我需要手動跟蹤狀態還是jquery ui爲我處理這件事?如何禁用jqueryui按鈕

+0

你可以把你的代碼。 – jcubic 2010-09-19 21:11:07

回答

33

試試這個。

$('#button_id').button("disable"); 
$('#button_id').button("enable"); 
+0

這就是我正在做的,但我仍然會觸發.click()回調。 – ablerman 2010-09-19 20:26:21

+0

@ablerman jQueryUI應該正確處理這個問題。在我的本地例子中,當我使用'$('#button_id')。button(「disable」)''button_id沒有觸發.click()處理程序,然後在我調用'$('# button(')')。button('enable')' – Mattygabe 2011-02-25 16:15:10

+0

我在click()處理程序中執行此操作:($(「#button_id」)。button()。attr(「disabled」))return; – xmedeko 2012-10-01 15:55:09

17

根據文檔:

// setter 
$("#button_id").button("option", "disabled", true); 
+0

那麼,到底你可以初始化你的按鈕是這樣的:'$( 「選擇」).button() \t \t。點擊(函數() \t \t { \t \t \t如果(this.checked) \t \t \t \t $(本).button( 「選項」, 「圖標」,{二次: 「UI圖標圈覈對」}) \t \t}) \t \t .filter( 「:選中」)按鈕({圖標:{secondary:「ui-icon-circle-check」}}) \t \t .filter(「:disab led「)。button(」option「,」disabled「,true); \t \t});' – 2013-01-18 12:55:28

+0

這不會設置ui-state-disabled類,所以按鈕仍然會啓用。 – spyderman4g63 2016-12-15 14:22:05

17

它爲我的作品:

$("#button_id").attr("disabled", true).addClass("ui-state-disabled"); 
1

如果你像這樣定義:

$("#mybtn").button(); 

您必須啓用/禁用這樣:

$("#mybtn").button("enable"); 
// OR 
$("#mybtn").button("disable");