2010-09-17 44 views
26

Khi tôi nhấp vào nút ui jquery, nó vẫn kích hoạt gọi lại sự kiện nhấp chuột. Làm cách nào để chặn sự kiện đó? Tôi có phải theo dõi trạng thái theo cách thủ công hay không, jquery ui có quan tâm đến điều đó cho tôi không?Làm cách nào để tắt nút jqueryui

+0

Bạn có thể đặt mã của mình không. – jcubic

Trả lời

33

Hãy thử điều này.

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

Đó là những gì tôi đang làm, nhưng tôi vẫn nhận được kích hoạt .click(). – ablerman

+0

@ablerman jQueryUI nên xử lý chính xác cho bạn. Trong ví dụ địa phương của tôi khi tôi sử dụng nút '$ ('# button_id'). (" Disable ")' trình xử lý .click() không được kích hoạt cho button_id, và sau đó được kích hoạt lại đúng khi tôi gọi '$ ('# button_id '). (' enable ') ' – Mattygabe

+0

Tôi làm điều này trong trình xử lý click(): ($ (" # button_id "). button(). attr (" disabled ")) return; – xmedeko

17

theo tài liệu:

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

Vì vậy, chính xác bạn có thể init nút của bạn như thế này: '$ ("selector") .button() \t \t .click (function() \t \t { \t \t \t if (this.checked) \t \t \t \t $ (this) .button ("tùy chọn", "biểu tượng", {trung học: "ui-icon-tròn-kiểm tra"}) \t \t}) \t \t .filter (. ": kiểm tra") nút ({ biểu tượng: {phụ: "ui-biểu tượng-vòng tròn-kiểm tra"}}) \t \t .filter (": hủy nút ")" ("tùy chọn", "bị tắt", đúng); \t \t}); ' –

+0

Thao tác này sẽ không đặt lớp bị vô hiệu hóa trạng thái ui, vì vậy nút vẫn sẽ được bật. – spyderman4g63

17

Nó làm việc cho tôi:

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

Nếu bạn định nghĩa như thế này:

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

bạn phải kích hoạt/vô hiệu hóa như thế này :

$("#mybtn").button("enable"); 
// OR 
$("#mybtn").button("disable"); 
Các vấn đề liên quan