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;