Theo W3C, sự kiện onclick
được kích hoạt bởi bàn phím cho mục đích trợ năng:
SCR35: Making actions keyboard accessible by using the onclick event of anchors and buttons
Để cung cấp trải nghiệm người dùng tốt hơn cho những người không có việc sử dụng một con chuột, các trình duyệt đã được phát triển để cháy, sự kiện onclick
ngay cả khi nhấp chuột xảy ra với một bàn phím.
Vì lý do này, sự kiện click
của jQuery sẽ kích hoạt ngay cả khi hộp kiểm là nhấp vào bằng cách sử dụng phím cách của bàn phím. change
, hiển nhiên, sẽ kích hoạt mỗi khi trạng thái của hộp kiểm thay đổi.
Hộp kiểm chỉ xảy ra là trường hợp đặc biệt nơi change
và click
là hoán đổi cho nhau, bởi vì bạn không thể cháy, sự kiện change
mà không có cũng kích hoạt click
.
Tất nhiên, ngoại lệ cho quy tắc này là nếu bạn đã sử dụng javascript để tự thay đổi hộp kiểm, chẳng hạn như:
/* this would check the checkbox without firing either 'change' or 'click' */
$('#someCheckbox').prop('checked',true);
/* this would fire 'change', but not 'click'. Note, however, that this
does not change the checkbox, as 'change()' is only the function that
is fired when the checkbox changes, it is not the function that
does the changing */
$('#someCheckbox').trigger('change');
/* this would fire 'click', which by default automatically triggers 'change' */
$('#someCheckbox').trigger('click');
Dưới đây là một cuộc biểu tình của những hành động khác nhau: http://jsfiddle.net/jackwanders/MPTxk/1/
Hy vọng điều này giúp.
có vẻ như bạn đã tự trả lời câu hỏi của mình. –
'nhấp chuột 'có nghĩa là nhấp vào hộp kiểm như bất kỳ phần tử nào khác,' thay đổi' có nghĩa là giá trị của hộp kiểm đã được thay đổi. – Esailija
Nhưng giá trị sẽ được thay đổi ở mọi nhấp chuột. Vì vậy, whats sự khác biệt? – Jashwant