svnno****@sourc*****
svnno****@sourc*****
2010年 6月 19日 (土) 23:54:51 JST
Revision: 1904
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1904
Author: dhrname
Date: 2010-06-19 23:54:51 +0900 (Sat, 19 Jun 2010)
Log Message:
-----------
イベントの効率化とバグの修正
Modified Paths:
--------------
branches/06x/061/org/w3c/dom/events.js
Modified: branches/06x/061/org/w3c/dom/events.js
===================================================================
--- branches/06x/061/org/w3c/dom/events.js 2010-06-19 14:45:01 UTC (rev 1903)
+++ branches/06x/061/org/w3c/dom/events.js 2010-06-19 14:54:51 UTC (rev 1904)
@@ -390,7 +390,6 @@
n.parentNode = this;
/*ここから*/
var evt = this.ownerDocument.createEvent("MutationEvents");
- evt.target = n;
evt.initMutationEvent("DOMNodeInserted", true, false, this, null, null, null, null);
n.dispatchEvent(evt);
/*以下のDOMNodeInsertedIntoDocumentイベントは、間接的、あるいは直接ノードが
@@ -398,7 +397,6 @@
*このイベントは浮上しないことに注意を要する
*/
evt = this.ownerDocument.createEvent("MutationEvents");
- evt.target = n;
evt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
n.dispatchEvent(evt);
if (!n.hasChildNodes()) { //子ノードがないので終了
@@ -406,14 +404,14 @@
}
var descend = n.getElementsByTagNameNS("*", "*"); //全子孫要素を取得
if (descend) {
+ evt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
for (var i=0,dli=descend.length;i<dli;++i) {
var di = descend[i];
evt.target = di;
- evt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
var tce = di._capter; //tceは登録しておいたリスナーのリスト
for (var j=0,tcli=tce.length;j<tcli;++j){
if (tce[j]) {
- tce[j].handleEvent(evtt);
+ tce[j].handleEvent(evt);
}
}
j = tcli = di = null;
@@ -430,25 +428,22 @@
}
/*ここから*/
var evt = this.ownerDocument.createEvent("MutationEvents");
- evt.target = ele;
/*以下のDOMNodeRemovedFromDocumentイベントは、間接的、あるいは直接ノードが
*除去されたときに発火する。間接的な除去とは、サブツリーをいっぺんに除去する場合など。
*このイベントは浮上しないことに注意を要する
*/
evt.initMutationEvent("DOMNodeRemovedFromDocument", false, false, null, null, null, null, null);
- n.dispatchEvent(evt);
+ ele.dispatchEvent(evt);
var descend = n.getElementsByTagNameNS("*", "*"); //全子孫要素を取得
if (descend) {
+ evt.initMutationEvent("DOMNodeRemovedFromDocument", false, false, null, null, null, null, null);
for (var i=0,dli=descend.length;i<dli;++i) {
var di = descend[i];
evt.target = di;
- evt.initMutationEvent("DOMNodeRemovedFromDocument", false, false, null, null, null, null, null);
di.dispatchEvent(evt);
di = null;
}
}
- evt = this.ownerDocument.createEvent("MutationEvents");
- evt.target = ele;
evt.initMutationEvent("DOMNodeRemoved", true, false, this, null, null, null, null);
ele.dispatchEvent(evt);
evt = descend = null;
@@ -470,9 +465,8 @@
this.length = this.data.length;
/*ここから*/
var evt = this.ownerDocument.createEvent("MutationEvents");
- evt.target = this.parentNode;
evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
- ele.dispatchEvent(evt);
+ this.parentNode.dispatchEvent(evt);
evt = arg = pd = null;
/*ここまで追加*/
};
@@ -484,9 +478,8 @@
this.length = this.data.length;
/*ここから*/
var evt = this.ownerDocument.createEvent("MutationEvents");
- evt.target = this.parentNode;
evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
- ele.dispatchEvent(evt);
+ this.parentNode.dispatchEvent(evt);
evt = arg = pd = null;
/*ここまで追加*/
};
@@ -501,9 +494,8 @@
this.length = this.data.length;
/*ここから*/
var evt = this.ownerDocument.createEvent("MutationEvents");
- evt.target = this.parentNode;
evt.initMutationEvent("DOMCharacterDataModified", true, false, null, pd, this.data, null, null);
- ele.dispatchEvent(evt);
+ this.parentNode.dispatchEvent(evt);
evt = pd = null;
/*ここまで追加*/
};