Bạn có thể sử dụng jQuery._data
để kiểm tra sự kiện. Đối số đầu tiên phải là tham chiếu đến phần tử HTML, không phải là đối tượng jQuery.
var ev = $._data(element, 'events');
if(ev && ev.click) alert('click bound');
Ví dụ bên dưới.
$(function(){
$('#test').click(function(){
// NOTE: this below is refering to the HTML element, NOT the jQuery element
var ev = $._data(this, 'events');
if(ev && ev.click) alert('click bound to this button');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<button id="test">Click me to check for click handlers</button>
Cũng lưu ý rằng phương pháp này cho các sự kiện kiểm tra sẽ chỉ làm việc khi sự kiện này được ràng buộc qua jQuery. Nếu sự kiện bị ràng buộc qua element.attachEventListener
, element.onclick
, <a onclick="doStuff()">
hoặc bất kỳ cách nào khác không phải jQuery, điều này sẽ không hoạt động. Nếu bạn thích hợp với chiếc thuyền này, hãy kiểm tra this answer.
Bạn đã chỉ định trình xử lý nhấp chuột như thế nào? – AmShaegar
bạn có chắc là liên kết được chọn đúng cách – NimChimpsky
Trình xử lý được gán với liên kết.nhấp vào (... một số hàm ...) nhiều lần, vì tôi không thể kiểm tra xem nó đã tồn tại chưa. Và để xử lý được thực hiện nhiều lần – kostepanych