函數觸發一個事件並傳遞一些數據,然後這些數據可能會被偵聽器處理。如果不是,該功能希望自己處理數據。那麼,因爲我不知道這個軟件包是否被處理過,所以我的想法是找出是否有聽衆。有沒有辦法做到這一點,或者有沒有人對我的問題有更好的想法?詢問事件是否在jQuery中有監聽器
在此先感謝!
函數觸發一個事件並傳遞一些數據,然後這些數據可能會被偵聽器處理。如果不是,該功能希望自己處理數據。那麼,因爲我不知道這個軟件包是否被處理過,所以我的想法是找出是否有聽衆。有沒有辦法做到這一點,或者有沒有人對我的問題有更好的想法?詢問事件是否在jQuery中有監聽器
在此先感謝!
您就可以向該與jQuery之前1.8這樣的:
<script src="http://code.jquery.com/jquery-1.6.min.js"></script>
<script>
$(document).ready(function() {
$("#click_here").click(function() {
alert("Handler for .click() called.");
});
console.log($('#click_here').data('events'));
});
</script>
<div id="click_here">Click here</div>
我創建了一個插件,主要是爲了在你的測試中使用。
// Example usage
$('.foo').hasEvent('click', someHandler)
// returns true if someHandler is bound via jQuery on '.foo'
// for the click event
插件測試使用jQuery 1.7工作,並達到
我有一個非常類似的問題。它從來沒有被jquery正確支持的東西,而是有點破解。所以,你可以通過使用
data('events')
1.8後前做1.8版本的jQuery,你可以使用:
$._data($('.element')[0], 'events');
但如果你試圖做我在做什麼...確保一個事件處理程序只在控件上分配一次(也就是在一些表單驗證後保存按鈕),那麼您可以:
$('element').unbind('event'); $('element').on('click', save);
試過'$(元件).hasEventListener(類型)'之前移除任何左撇子? – Cherniv 2013-05-12 09:01:02
看起來像是一個插件:https://github.com/sebastien-p/jquery.hasEventListener – Barmar 2013-05-12 09:02:27
所有事件都綁定到某些元素。所以在Chrome中你有開發者工具 - >元素標籤 - >事件監聽器標籤(在右側)。猜猜其他瀏覽器的開發工具中有類似的東西。 – zeliboba 2013-05-12 09:04:02