[Sie-announce] SIEコード [1686] EventのstopPropagationとpreventDefaultメソッドを実装

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 2月 28日 (日) 19:31:16 JST


Revision: 1686
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1686
Author:   dhrname
Date:     2010-02-28 19:31:16 +0900 (Sun, 28 Feb 2010)

Log Message:
-----------
EventのstopPropagationとpreventDefaultメソッドを実装

Modified Paths:
--------------
    branches/ufltima/dom/events.js

Modified: branches/ufltima/dom/events.js
===================================================================
--- branches/ufltima/dom/events.js	2010-02-27 14:29:32 UTC (rev 1685)
+++ branches/ufltima/dom/events.js	2010-02-28 10:31:16 UTC (rev 1686)
@@ -135,6 +135,9 @@
         tce[j].handleEvent(evt);
       }
     }
+    if (evt._stop) {
+      break; //stopPropagationメソッドが呼ばれたら、停止する
+    }
     if (d === 0) {
       if (!evt.bubbles) {
         break; //浮上フェーズに移行せず、停止する
@@ -142,8 +145,9 @@
       evt.eventPhase = Event.BUBBLING_PHASE;
     }
   }
+  var d = evt._default
   evt = null;
-  return true;
+  return d;
 };
 
 function EventListener(cap,type,listener) {
@@ -175,11 +179,17 @@
   /*boolean*/          this.bubbles = false;
   /*boolean*/          this.cancelable = false;
   /*DOMTimeStamp*/     this.timeStamp = new Date();
+  this._stop = false; //stopPropagationメソッドで使う
+  this._default = true; //preventDefaultメソッドで使う
   return this;
 };
 Event.prototype = {
-  /*void*/ stopPropagation : function(){},
-  /*void*/ preventDefault : function(){},
+  /*void*/ stopPropagation : function(){
+    this._stop = true;
+  },
+  /*void*/ preventDefault : function(){
+    this._default = false;
+  },
   /*void*/ initEvent : function( /*string*/ eventTypeArg, /*boolean*/ canBubbleArg, /*boolean*/ cancelableArg) {
     this.type = eventTypeArg;
     this.bubbles = canBubbleArg;




Sie-announce メーリングリストの案内
Back to archive index