我需要在Document
級別觀看兒童事件,但是如果兒童使用方法stopPropagation()
停止傳播,我無法聽到兒童發生的這些事件。如何在兒童停止傳播時聆聽兒童事件
有人可以知道更好的方法來做到這一點嗎?
編輯:現在我想創建一個Chrome擴展監視DOM節點事件,但事件可以停止傳播,這是不是一個很好的做法,額外的監聽器添加到所有節點。以下示例將顯示我的問題。
客戶HTML片段
<body>
<input type="button" value="Click Me" id="b">
</body>
客戶的JavaScript
var button = document.querySelector('#b');
button.addEventListener('click', function(e) {
console.log('Button has been clicked');
e.stopPropagation();
});
瀏覽器擴展程序內容腳本
document.addEventListener('click', function(e) {
console.log('Node(' + e.target.nodeName + ') has been clicked');
// this listener will not be invoked because event has been stopped
// propagation.
});
當問的問題在這裏它始終是更好地描述你真正的問題,不只是你的嘗試性解決方案的問題。這可以讓人們閱讀你的問題,爲你提供你甚至沒有意識到的解決方案。當你只描述你嘗試的解決方案的問題並且沒有描述真正的問題時,除了你正在嘗試創建的解決方案之外,我們幾乎無法做到。這被稱爲[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem),嚴重限制了人們可以幫助你的程度。 – jfriend00