2011-08-03 43 views

回答

0
function IndentifyMe(){ 
alert("You clicked on " + window.event.srcElement.tagName); 
} 

<body onclick = "IndentifyMe()"> 

試試這個代碼,有很多元素在體內的標籤,並嘗試一下不同的元素

0

活動是用戶交互的命脈。沒有事件,您無法與頁面交互。

事件處理程序用於在發生某些操作時調用某些JavaScript。如果您希望某些 行爲在用戶將光標移到元素上時觸發,那麼您可以使用onmouseover事件處理程序。

「DOM腳本:網頁設計與JavaScript和文檔對象模型:第二版」

15

這裏什麼w3school saysevent對象:

活動是可以由JavaScript進行檢測動作,並且事件 對象提供有關發生的事件的信息。

有時我們想要在事件發生時執行JavaScript,例如當用戶單擊按鈕時,就會執行一個JavaScript,例如 。

可以使用處理事件:

node.onclick = function(e) { 
    // here you can handle event. e is an object. 
    // It has some usefull properties like target. e.target refers to node 
} 

但是Internet Explorer不通過事件處理程序。相反,您可以使用在事件被觸發後立即更新的window.event對象。因此,跨瀏覽器的方法來處理事件:如果這個差異在較新版本的瀏覽器被修改,但基本上,「在微軟的事件訪問模型

node.onclick = function(e) { 
    e = e || window.event; 
    // also there is no e.target property in IE. 
    // instead IE uses window.event.srcElement 
    var target = e.target || e.srcElement; 
    // Now target refers to node. And you can, for example, modify node: 
    target.style.backgroundColor = '#f00'; 
} 
+5

除此之外,你從W3Schools的畫,這是這裏最有用的答案。 +1。 – duri

+0

「_'e.target」指的是'node'_「:這是錯誤的。 'this'指的是'node',而'e.target'可以指代'node'的任何子元素,具體取決於哪個元素被點擊以及事件是否冒泡等等。 – Xufox

+1

對於所有版本的IE ?我意識到這是一個古老的問題,只是好奇...找不到任何東西 – aw04

6

不知道有一個包含的最後一個事件的一個特殊屬性window.event發生了。「 (從基準)

所以,寫一個事件處理跨瀏覽器兼容你需要做這樣的事情:

function doSomething(e) { 
    if(!e) { 
     var e = window.event; 
    } 
    var ele = e.target || e.srcElement; 
    // get the clicked element 
    // srcElement for IE, target for others 
} 
element.onclick = doSomething; 

參考: http://www.quirksmode.org/js/events_access.html