2012-04-28 52 views

回答

1

您在調用context函數,而不是將其作爲偵聽器傳遞。我的意思是,這樣的:

divs[i].addEventLisenter('click', context(divs[i].id), true); 

應該是:

divs[i].addEventLisenter('click', context, true); 

這:

function context(id) { 
    console.log(id+' clicked'); 
} 

應該是:

function context(evt) { 
    console.log(this.id + ' clicked'); 
} 
+0

啊,有趣...雖然我找到了不同的方式來做我想做的事。 (即將click事件添加到容器div,並獲取子div的event.target.id。 – 2012-04-28 03:08:23

+0

@Charles,你在做什麼是非常有用的!如果你動態地向容器中添加新的子元素,點擊偵聽器也會爲他們工作(與上面的傳統方法不同),它被稱爲「事件代表團」。 – bfavaretto 2012-04-28 03:15:46

-1

JavaScript被解釋,因此您應該將docINIT的定義移到使用它的上方。

+0

不一定是真的 - 解釋與它無關。研究JavaScript變量的提升。該函數可以存在並可以在範圍內的任何地方定義。 – tkone 2012-04-28 02:35:02

+0

tkone是正確的,我一直在幾個應用程序中使用docINIT的佈局方法,從來沒有問題。 – 2012-04-28 03:10:07