在下面的代碼中,似乎我只對最後添加的盒子(b1)進行'otherboxclick'調用。如果我改變這些框的添加順序,它總是最後一個工作。addEventListener僅適用於最後一個對象
我怎樣才能讓它適用於所有的盒子?
<html>
<head>
</head>
<body>
<script type="text/javascript">
function otherboxclick(e){
alert("other clicked");
}
function color_toggle_box(boxid, color, width, height, xpos, ypos)
{
this.boxid = boxid;
document.body.innerHTML +=
"<div id='" + boxid + "'; '; style='position:absolute;left:" + xpos + "px;top:" +
ypos +"px;width:" + width + "px;height:" + height +
"px;background:#000'></div>";
this.boxdiv = document.getElementById(boxid);
this.boxdiv.style.background = color;
this.boxdiv.addEventListener('click', otherboxclick, true);
}
var b2 = new color_toggle_box("223", "#ff0", 100, 100, 205, 100);
alert("b2 = " + b2.boxid);
var b3 = new color_toggle_box("323", "#0ff", 100, 100, 100, 205);
alert("b3 = " + b3.boxid);
var b1 = new color_toggle_box("123", "#0f0", 100, 100, 100, 100);
alert("b1 = " + b1.boxid);
</script>
</body>
</html>
+1我還喜歡將HTML屬性設置爲HTML字符串。在這種情況下可能沒有多大區別,但將HTML字符串拼湊在一起而沒有正確轉義通常是一個非常糟糕的主意。 – bobince 2009-10-28 01:59:02