2014-12-04 63 views
1

有了這麼多不同的設備,做了很多不同的事情,我認爲創建一個通用的偵聽器可能很有用。 This是我的簡單嘗試,當然,它不能工作。但它可能只是刺激到有人想出一個真正的解決方案: -用戶如何識別任何事件

$("#allEvents").on("*", function(evnt) { 
    console.log(evnt.type); 
}); 

<div id="allEvents"> 
    this is some text inside div allEvents 
</div> 

另外,有東西在那裏,可以說,當他們做他們的設備上某些事情被解僱的事件是什麼用戶?

+0

的可能重複[我怎樣可以綁定一個DOM元素上的所有事件?(http://stackoverflow.com/questions/5848598/how-can-i-bind-all-events-on-a -dom-element) – Antony 2014-12-04 13:52:52

+0

我正在看那@Antony,但到目前爲止我無法讓它工作。我顯然缺少重要的東西 – cneeds 2014-12-04 14:32:50

回答

0

您可以得到的最接近的是獲取瀏覽器支持的所有事件,並將其放入數組中,然後綁定到它並檢查event.type。爲此,我們將使用Object.keys來獲取document的密鑰,然後我們將過濾掉只包含事件並從它們中刪除「on」前綴。

現在,我們已經有了瀏覽器支持的一系列事件,沒有「on」前綴,我們可以加上Array.join(" "),然後我們可以利用e來檢查事件的類型。

var arr = Object.keys(document).filter(function(x) { 
    return x.indexOf("on") == 0 
}).map(function(x) { 
    return x.replace("on", ""); 
}); 
$('#allEvents').on(arr.join(" "), function(e) { 
    console.log(e.type); 
}); 
+0

然後,這假設我知道每個(和每個)瀏覽器支持哪些事件?我希望來自POV,我不知道,我怎麼能找出(除了閱讀每個瀏覽器和它支持的每個平臺的文檔)? – cneeds 2014-12-04 14:11:35

+0

@cneeds什麼是POV? – 2014-12-04 14:13:35

+0

觀點@不好意思,請問 – cneeds 2014-12-04 14:24:34