2008-12-29 60 views
39

Sự khác biệt giữa hai phần HTML sau đây (xin lỗi nếu có bất kỳ lỗi chính tả nào khi tôi đang gõ tự do này)?Sự khác nhau giữa việc sử dụng onclick của jQuery và thuộc tính onclick là gì?

Sử dụng jQuery:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#clickme").click(function() { 
      alert("clicked!"); 
     }); 
    }); 
</script> 

<a id="clickme" href="javascript:void(0);">click me</a> 

Không sử dụng jQuery:

<a id="clickme" href="javascript:void(0);" onclick="alert('clicked!');">click me</a> 
+1

Chỉ cần lưu ý: bạn sẽ không bao giờ được đặt mã JavaScript trong thuộc tính 'href'. Nó tạo ra các liên kết không làm gì trên các trình duyệt không được kích hoạt JavaScript và phá vỡ ý tưởng về việc tăng cường tiến bộ (hoặc sự xuống cấp duyên dáng nếu bạn muốn). –

+3

@ Joseph Earl Có, nhưng điểm đặt javascript: void (0) là nó không phải làm gì cả. Sự kiện onclick được xử lý thông qua jQuery trong ví dụ này. –

Trả lời

55

Một sự khác biệt lớn là các sự kiện của jQuery được xử lý trong sổ đăng ký được phân tích cú pháp trên sự kiện nhấp chuột. Quan trọng hơn, điều này có nghĩa rằng bạn được phép gán nhiều callbacks, và họ đã gây ra trong thứ tự mà họ đã đăng ký:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#clickme").click(function() { 
      alert("clicked!"); 
     }); 
     $("#clickme").click(function() { 
      alert("I concur, clicked!"); 
     }); 
    }); 
</script> 

Họ sẽ vừa được viện dẫn trên các sự kiện click, theo thứ tự đó. Sự kiện "thực sự" onClick bị ghi đè bởi hệ thống điều khiển đăng ký của jQuery. Trong cấu trúc tài liệu vani, không có hệ thống như jQuery tại chỗ, chỉ có thể có một sự kiện onClick.

+2

+1. Câu trả lời hay. Sự kiện bình thường hóa (mà tôi nghĩ jQuery làm) là sự khác biệt của anther. – seth

6

Một trong những khác biệt là bổ sung xử lý với click jQuery không loại bỏ xử lý trước.

8

Nó cũng là một phân tách rõ ràng hơn về mã giao diện người dùng (HTML) và mã logic (JavaScript). Nó làm cho việc đọc dễ dàng hơn một chút.

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