svnno****@sourc*****
svnno****@sourc*****
2011年 3月 24日 (木) 20:54:08 JST
Revision: 2504
http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2504
Author: dhrname
Date: 2011-03-24 20:54:07 +0900 (Thu, 24 Mar 2011)
Log Message:
-----------
dispatchEventメソッドの整理
Modified Paths:
--------------
branches/07x/073/org/w3c/dom/events.js
Modified: branches/07x/073/org/w3c/dom/events.js
===================================================================
--- branches/07x/073/org/w3c/dom/events.js 2011-03-24 11:43:06 UTC (rev 2503)
+++ branches/07x/073/org/w3c/dom/events.js 2011-03-24 11:54:07 UTC (rev 2504)
@@ -113,12 +113,12 @@
this.removeEventListener(type, listener, useCapture); //いったん、(あれば)リスナーを離す。
var s = new EventListener(useCapture, type, listener), //リスナーを作成
t = type.charAt(0),
- node, evt;
+ node;
this._capter[this._capter.length] = s; //このノードにリスナーを登録しておく
if (t !== "D" && t !== "S" && type !== "beginEvent" && type !== "endEvent" && type !== "repeatEvent") { //MouseEventsならば
node = this;
node._tar.attachEvent("on" +type, function(){
- evt = node.ownerDocument.createEvent("MouseEvents");
+ var evt = node.ownerDocument.createEvent("MouseEvents");
evt.initMouseEvent(type, true, true, node.ownerDocument.defaultView, 0);
node.dispatchEvent(evt);
evt = null;
@@ -145,6 +145,8 @@
var te = this,
td = this.ownerDocument,
etime = evt.timeStamp,
+ etype = evt.type,
+ ebub = evt.bubbles,
tob,
type = /*Event.CAPTURING_PHASE*/ 1,
tce;
@@ -192,7 +194,7 @@
evt.eventPhase = type;
tce = td._capter; //tceは登録しておいたリスナーのリスト
for (var j=0,tcli=tce.length;j<tcli;++j){
- if (tce[j] && (evt.type === tce[j]._type)) {
+ if (tce[j] && (etype === tce[j]._type)) {
tce[j].handleEvent(evt);
}
}
@@ -200,7 +202,7 @@
break; //stopPropagationメソッドが呼ばれたら、停止する
}
if (td === this) {
- if (!evt.bubbles) {
+ if (!ebub) {
break; //浮上フェーズに移行せず、停止する
}
type = 3;//Event.BUBBLING_PHASE;
@@ -208,7 +210,7 @@
td = td[type];
}
var ed = evt._default;
- evt = te = tce = n = td = type = tob = j = tcli =null;
+ evt = te = tce = n = td = type = tob = j = tcli = etype = etime = ebub =null;
return ed;
};