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; /*ここまで追加*/ };