關(guān)于JavaScript的cloneNode方法對于節(jié)點上的事件clone問題的研究。
我的測試環(huán)境是IE8,對于事件clone要注意一下3點:
1.運行時添加的事件不會被克隆,如下例:
1
a = document.getElementById('a'); //假設(shè)a是一個div
2 a.onclick = function () { alert(this.innerHTML); }
3
b = a.cloneNode();

2 a.onclick = function () { alert(this.innerHTML); }
3

2.解析HTML時原來帶的事件會被克隆,如下例:
1
<div id='a' onclick='alert(this.innerHTML)'>aaaa</div>

3.通過attachEvent添加的事件會被克隆,如下例:
1
a = document.getElementById('a');
2 a.attachEvent('onclick', function () {
3 alert(this.innerHTML);
4 });
5
b = a.cloneNode();

2 a.attachEvent('onclick', function () {
3 alert(this.innerHTML);
4 });
5

最后如果想在clone時將節(jié)點其中的子節(jié)點一同clone的話,請使用cloneNode(true)。
posted on 2009-10-18 13:28 Eric Song 閱讀(1040) 評論(0) 編輯 收藏 所屬分類: JavaScript