2012-04-03 39 views
8

Tôi có 2 tập lệnh riêng biệt về cơ bản thực hiện tương tự. Tôi xây dựng chúng theo thời gian và chỉ phát hiện ra tôi đang sử dụng một vài phương tiện khác nhau để có được kết quả tương tự.Cách tốt nhất để thực hiện jQuery là gì. Thay đổi()

Tôi muốn chuẩn hóa và sử dụng phương pháp thực hành tốt nhất trong cả hai trường hợp.

Một cách tôi thử nghiệm một sự kiện thay đổi là thế này:

$('input[name="status"]').change(function() {}); 

Một cách khác Tôi đang thử nghiệm một sự kiện thay đổi là thế này:

$("#email").bind("change", function(e) {}); 

Những cách là tốt nhất? Sự khác biệt giữa 2 là gì?

Cảm ơn bạn đã giúp tôi hiểu điều này.

Trả lời

16

Trước jQuery 1.7, change()simply a short cut cho bind("change").

Kể từ 1,7 tuy nhiên, on() đã được giới thiệu và được ưu tiên là bind(). Điều đó có nghĩa là change() là phím tắt cho on("change") và thực tế, tất cả cuộc gọi bind() giờ sẽ gọi số on() nội bộ.

Tóm lại, họ cũng làm như vậy. Tôi thấy việc sử dụng rõ ràng on() (hoặc bind()) thích hợp hơn, nhưng miễn là bạn nhất quán trong toàn bộ cơ sở mã của mình, tôi không thấy bất kỳ sự khác biệt thực sự nào.

Người ta có thể cho rằng việc sử dụng change() trên on("change") là "tốt hơn", khi lỗi đánh máy trong từ "thay đổi" sẽ ném lỗi phân tích cú pháp trong trường hợp đầu tiên ("undefined is not a function"). on() ... nhưng rõ ràng các bài kiểm tra đơn vị của bạn sẽ bắt được điều đó, đúng không? ;).

+0

OK ... cảm ơn @Matt! –

+0

Vì vậy, @Matt, cú pháp mã của tôi cần phải giống như thế này '$ (" # email "). (" Thay đổi ", hàm (e) {});'? –

+1

@ Dr.DOT: Yep ..! – Matt

Các vấn đề liên quan