2012-10-23 9 views
15

thể trùng lặp:
jQuery mouseover a disabled link, how do I change the cursor so it doesn’t appear clickable?Ngăn chặn Cursor Thay đổi để tay lên nút khuyết tật

Tôi có một nút mà tôi đang cố gắng để vô hiệu hóa trong các trường hợp nhất định mà chức năng của nó là không cần thiết hoặc không thể . Đây là một trong nhiều nút trên trang và tôi chỉ muốn vô hiệu hóa nút cụ thể này.

Hiệu ứng tôi đang tìm kiếm là chuyển sang màu xám, không thể nhấp và con trỏ chuột không thay đổi thành con trỏ khi di chuột qua nút.

Tôi đã thành công thành công ở 2 mục tiêu đầu tiên, nhưng không chắc chắn cách thực hiện mục tiêu thứ ba. Khi tôi tìm kiếm, tôi đã thấy các đề xuất để vô hiệu hóa hành vi này trên toàn cầu, nhưng không phải cho một nút cụ thể.

Đây là những gì tôi có cho đến nay.

if(buttonIsDisabled) 
{ 
    var btnid ="#button"+index; 
    $(btnid).attr("disabled","disabled").fadeTo(500,0.2); 
} 

Điều này làm cho nút không thể nhấp và mờ dần, nhưng trong Firefox và Chrome nó vẫn hiển thị biểu tượng bàn tay khi di chuột. IE8 (mà tôi cũng phải hỗ trợ) vô hiệu hóa chính xác bàn tay và hiển thị con trỏ.

Bất kỳ đề xuất nào về cách thực thi hành vi của IE trong Chrome và Firefox?

+1

Các bạn đã thử tạo kiểu cho nó bằng CSS, vd 'cursor: default'? – j08691

+0

@ j08691 Tôi chỉ muốn điều này được thực hiện tự động đôi khi, nhưng giải pháp jQuery .css rõ ràng có ý nghĩa. –

+0

@Diodeus tốt điểm, tôi đã làm một số tìm kiếm nhưng đã được tìm kiếm cụ thể nút cụ thể và không nhìn thấy "vô hiệu hóa liên kết" bài. –

Trả lời

25

Bạn có thể đặt quy tắc "con trỏ" thành giá trị "mặc định". Trong jQuery, bạn có thể sử dụng phương thức css.

$(btnid).css("cursor", "default"); 

Vì bạn đã đang sử dụng $ (btnid), bạn chỉ có thể chuỗi các cuộc gọi, như vậy:

$(btnid).attr("disabled","disabled").css("cursor", "default").fadeTo(500,0.2); 
+0

chính xác những gì tôi muốn, cảm ơn! –

+0

Một cái gì đó giống như công việc này quá .css ("con trỏ", "con trỏ! Quan trọng"); ? Sử dụng! Quan trọng để ghi đè lên bất cứ điều gì? –

+0

@KalaJ - có nó sẽ hoạt động, nhưng lý do duy nhất bạn nên làm đó là nếu bạn đang cố gắng ghi đè lên một ghi đè. Hàm css trong jQuery thiết lập các trường trên thuộc tính style của phần tử dom phù hợp. Điều này sẽ có độ đặc hiệu cao nhất theo mặc định, vì vậy không cần thiết! Quan trọng, trừ khi quy tắc phù hợp với độ đặc hiệu thấp hơn cũng đang sử dụng! Nếu tất cả điều đó nghe có vẻ mumbo-jumbo, một quy tắc tốt là sử dụng! Xem http://css-tricks.com/specifics-on-css-specificity/ và http://css-tricks.com/when-using-important-is-the-right-choice/ –

4

Bạn cũng có thể đặt kiểu cursor: default thành nút.

4

Bạn có thể đặt css như thế này:

$(btnid) 
    .attr("disabled","disabled") 
    .css('cursor','default') 
    .fadeTo(500,0.2);