2013-01-05 47 views
1

我需要攔截頁面上觸發的所有事件並阻止它們; 然後我想發送一個XML消息給一個將返回多個客戶端的servlet。 收到消息後,該事件正常運行。Javascript - 找到觸發事件的項目

所以我有兩個問題:攔截並停止所有的事件,然後觸發事件延遲。

要監聽頁面上任何元素的點擊我以爲我會在$(document)上添加一個'click'監聽器,它構成了正確的XML消息:但是通過這種方式,我攔截了冒泡頂層事件!

  1. 如果我在這裏寫一個preventDefault/stopPropagation方法,它會在執行事件之後執行?我怎樣才能阻止事件?
  2. event.target方法返回文檔元素或最初觸發事件的元素?

然後, 如果我撰寫使用目標和事件的類型的XML消息,當客戶端接收消息並觸發它以編程,這可以釋放環路?

UPDATE: 答案的第二個問題是由http://www.quirksmode.org/js/events_properties.html 其中它被寫入給定:

即使一個事件被捕獲或冒泡,目標/ srcElement 總是保持元件又發生在事件。

+0

你可以回答#2通過測試出來。關於#1,是的,任何事件處理程序都可以在冒泡時作出反應 – Alexander

回答

2

要確定哪些因素觸發事件使用此事件的回調:

console.log("LOG|Event> " + "target: " + event.target); 
if(event.target.id) { 
    console.log("LOG|Event> " + "target.id: " + event.target.id); 
} 

對於跨瀏覽器,請參考:

http://www.quirksmode.org/js/events_properties.html

+0

感謝您的回覆,我知道使用的方法是「目標」,我的問題是關於通過將事件捕獲到更高級別的冒泡 – jenjis

+1

「目標」是一個屬性。 – 2013-01-06 19:06:18

+0

感謝您的糾正:) – jenjis