소스 검색

improve delegation check algorithm

Evan You 12 년 전
부모
커밋
d5a51f9a22
1개의 변경된 파일4개의 추가작업 그리고 7개의 파일을 삭제
  1. 4 7
      src/directives/on.js

+ 4 - 7
src/directives/on.js

@@ -1,12 +1,9 @@
 var utils = require('../utils')
 
-function delegateCheck (current, top, identifier) {
-    if (current[identifier]) {
-        return current
-    } else if (current === top || !current.parentNode) {
-        return false
-    } else {
-        return delegateCheck(current.parentNode, top, identifier)
+function delegateCheck (el, root, identifier) {
+    while (el && el !== root) {
+        if (el[identifier]) return el
+        el = el.parentNode
     }
 }