2015-02-23 45 views
0

我知道如果我有一个元素触发事件,它会传播到根,然后回退到原始元素。基本上,所有的祖先都会得到通知。但我想通知所有的后代。我可以这样做吗?我可以让事件在发起者和后代之间传播吗?

谢谢,里克

+0

它不是这样设计的,但也有可能的解决方法。你有具体的例子吗? – Blazemonger 2015-02-23 18:32:50

+0

主要用途是布局。如果有人调整外部分区的大小,我希望所有子分区都知道他们有更多或更少的空间。 – user2171796 2015-02-23 18:33:16

+2

对我来说,这听起来像是一份CSS的工作。 – Blazemonger 2015-02-23 18:34:06

回答

1

这是可能的,我的代码可能有一些错误,但在这里它是:

elem = document.querySelectorAll('#my-element')[0]; 

function callClickOnDescendants(element, event){ 
    for (var i = 0, len = element.children.length; i < len; i++){ 
    element.children[i].onclick.call(element.children[i], event); 
    callClickOnDescendants(element.children[i], event); 
    } 
} 

elem.onclick = function(event){ 
    callClickOnDescendants(elem, event); 
} 

如果你downvoting之前等待,我就可以在一个的jsfiddle测试。 编辑 它的工作原理,jsfiddle proof

+0

嗨,古斯蒂。我想我明白了。我可以在每个孩子身上自己调用事件处理程序。我看你是如何递归地沿着树的方向走的。谢谢!我想我可以用这个。 – user2171796 2015-02-24 02:44:30

相关问题