2011-09-08 78 views
0

我有div的html文件:Chrome的JavaScript的:事件冒泡問題

<div id='divTop'> 
    <div id='divChild'></div> 
</div> 

在文件末尾:

var top = document.getElementById('divTop');  
lib.addEvent(top, 'click', function() { alert('top'); }); 
var child = document.getElementById('divChild'); 
lib.addEvent(child, 'click', function() { alert('child'); }); 
var body = document.getElementsByTagName('body')[0]; 
lib.addEvent(body, 'click', function() { alert('body'); }); 
// lib.addEvent is just helper function. 
//It uses domEl.addEventListener or domEl.attachEvent 

正如你所看到的,我有點擊2名的div和身體活動。所以,當我點擊子div時,我希望按以下順序發送提醒:子,頂,身體。除了Chrome之外,我在所有瀏覽器中都得到了這個結果。在鉻我得到:孩子,身體,頂部。

我在這裏錯過了什麼嗎? 謝謝!

+0

,你可以把它放進一個小提琴? –

+0

好讀:http://www.quirksmode.org/js/events_order.html –

+0

是的,我讀過它。但是,爲什麼身體事件發生在中間? – york2k

回答

1

發現問題!我不應該使用名爲'top'的變量。

var top = document.getElementById('divTop'); 

應該改名,因爲窗口對象已經命名的屬性格式頂部