是否有任何現有的機制,我可以添加一個事件偵聽器'焦點'的頁面上的所有DOM元素具有此事件?如果沒有,我該怎麼做?JavaScript:捕捉事件無論元素
我想console.log(東西)任何時候任何DOM元素觸發事件。我該怎麼做?
編輯:沒有任何框架請:)
是否有任何現有的機制,我可以添加一個事件偵聽器'焦點'的頁面上的所有DOM元素具有此事件?如果沒有,我該怎麼做?JavaScript:捕捉事件無論元素
我想console.log(東西)任何時候任何DOM元素觸發事件。我該怎麼做?
編輯:沒有任何框架請:)
您可以將事件的身體或html元素進行綁定。或者包含所有html的任何其他元素。
或者,如果你想使用jQuery你可以做類似
$("*").bind("focus", function(e){
console.log("something");
})
活動「泡」上通過DOM,所以你應該能夠綁定一個監聽記錄,身體,HTML,或者任何其他父元素(例如一個div),並監聽由它包含的元素觸發的每個事件。
例如,使用JQuery,你可以做這樣的:
$(document).bind('focus', function(e) { console.log(e); });
這將記錄每一個焦點事件,不管是什麼元素開始觸發事件。
...除非氣泡被取消。 –
這個斷言的問題是某些事件(onfocus是其中之一)不會冒泡(在IE中)。你不能一概而論。每個活動都很特別。 – 2011-10-28 16:11:16
您可以嘗試在jQuery中使用:input
僞選擇器。
$(':input').focus(function(e){
console.log(e);
});
這隻會附加到輸入元素,這可能是你正在尋找的任何東西。
像這樣的東西應該工作(與jQuery)。
$("input").focus(function(){
console.log($(this).attr("id"));
});
這裏是一個活生生的例子: http://jsbin.com/ipiciz/edit#javascript,html,live
綁定的焦點事件,「每一個」元素在頁面上??? – Juri
正確的你可以做$(文檔),但OP沒有指定他的需要。我知道$(「*」)要慢得多,但它幾乎聽起來像他需要根據元素特定的基礎進行日誌記錄。 –