2011-10-27 67 views
0
  1. 是否有任何現有的機制,我可以添加一個事件偵聽器'焦點'的頁面上的所有DOM元素具有此事件?如果沒有,我該怎麼做?JavaScript:捕捉事件無論元素

  2. 我想console.log(東西)任何時候任何DOM元素觸發事件。我該怎麼做?

編輯:沒有任何框架請:)

回答

1

您可以將事件的身體或html元素進行綁定。或者包含所有html的任何其他元素。

或者,如果你想使用jQuery你可以做類似

$("*").bind("focus", function(e){ 
    console.log("something"); 
}) 
+0

綁定的焦點事件,「每一個」元素在頁面上??? – Juri

+0

正確的你可以做$(文檔),但OP沒有指定他的需要。我知道$(「*」)要慢得多,但它幾乎聽起來像他需要根據元素特定的基礎進行日誌記錄。 –

0

活動「泡」上通過DOM,所以你應該能夠綁定一個監聽記錄,身體,HTML,或者任何其他父元素(例如一個div),並監聽由它包含的元素觸發的每個事件。

例如,使用JQuery,你可以做這樣的:

$(document).bind('focus', function(e) { console.log(e); }); 

這將記錄每一個焦點事件,不管是什麼元素開始觸發事件。

+0

...除非氣泡被取消。 –

+0

這個斷言的問題是某些事件(onfocus是其中之一)不會冒泡(在IE中)。你不能一概而論。每個活動都很特別。 – 2011-10-28 16:11:16

0

您可以嘗試在jQuery中使用:input僞選擇器。

$(':input').focus(function(e){ 
    console.log(e); 
}); 

這隻會附加到輸入元素,這可能是你正在尋找的任何東西。