svnno****@sourc*****
svnno****@sourc*****
2010年 3月 13日 (土) 21:07:38 JST
Revision: 1727
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1727
Author: dhrname
Date: 2010-03-13 21:07:38 +0900 (Sat, 13 Mar 2010)
Log Message:
-----------
Eventの重複問題を解決する修正
Modified Paths:
--------------
branches/ufltima/dom/events.js
Modified: branches/ufltima/dom/events.js
===================================================================
--- branches/ufltima/dom/events.js 2010-03-13 11:15:06 UTC (rev 1726)
+++ branches/ufltima/dom/events.js 2010-03-13 12:07:38 UTC (rev 1727)
@@ -116,7 +116,7 @@
s[s.length] = te;
te = te.parentNode;
} while (te);
- s.unshift(this.ownerDocument);
+ s[s.length] = this.ownerDocument;
/*最初に捕獲フェーズでDOMツリーを下っていき、イベントのターゲットについたら、
*そこで、浮上フェーズとして折り返すように、反復処理をおこなう
*/
@@ -192,7 +192,8 @@
/*void*/ initEvent : function( /*string*/ eventTypeArg, /*boolean*/ canBubbleArg, /*boolean*/ cancelableArg) {
this.type = eventTypeArg;
this.bubbles = canBubbleArg;
- this.cacelable = cancelableArg;
+ this.cancelable = cancelableArg;
+ this.eventPhase = Event.CAPTURING_PHASE; //初期化
}
};
// PhaseType
@@ -340,6 +341,8 @@
*挿入されたときに発火する。間接的な挿入とは、サブツリーを作っておいて、それをいっぺんに挿入する場合など。
*このイベントは浮上しないことに注意を要する
*/
+ evt = this.ownerDocument.createEvent("MutationEvents");
+ evt.target = n;
evt.initMutationEvent("DOMNodeInsertedIntoDocument", false, false, null, null, null, null, null);
n.dispatchEvent(evt);
var descend = this.getElementsByTagNameNS("*", "*"); //全子孫要素を取得
@@ -380,6 +383,8 @@
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;