循环遍历所有后代yui3 / javascript

时间:2011-03-18 14:40:17

标签: javascript nodes yui3 descendant

我正在尝试确定某个节点内是否发生了点击。我这样做的想法是将节点和循环遍及其所有后代,测试每个节点是否为click事件目标。

我不确定获取指定节点的所有后代的最佳方法是在YUI3中。如果它在yui3中变得复杂,我愿意在普通的JS中这样做。如果有人有更好的方法,我也会接受另一种方法。

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

var isChild = wrapperNode.contains(targetNode);

http://developer.yahoo.com/yui/3/api/Node.html#method_contains

答案 1 :(得分:0)

你想要创造什么,听起来很像点击授权。

我不做YUI,但您可以在YUI3中阅读事件委托:

http://www.yuiblog.com/blog/2009/11/13/event-delegation-3/

http://kickballcreative.com/yui/demos/event-delegation/

答案 2 :(得分:0)

我目前的解决方案(在YUI3中)以防万一有人遇到同样的问题。随意发布改进。

   function isChild(targetNode, wrapperNode) {
        var descendants = wrapperNode.all('*');
        var counter = 0;
        descendants.each(function(node) {
            if(node == targetNode) {
                counter++;
            }
        });
        return (counter > 0) ? true : false;
    }

答案 3 :(得分:0)

如果我了解这种情况,您感兴趣的节点包含一些可能会获得点击的节点。如果是这种情况,click事件将冒泡到父节点,因此监听该节点上的单击就足够了。

然后,你需要做的事情可能更复杂一些,在这种情况下,如果我误解了道歉。