我可以让事件在发起者和后代之间传播吗?
Can I make events propagate between originator and descendants?
我知道如果我有一个元素触发一个事件,它会传播到根,然后向下传播到原始元素。基本上,所有的祖先都会得到通知。却要通知所有的子孙。我可以这样做吗?
谢谢,瑞克
这是可能的,我的代码可能有一些错误,但这里是:
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);
}
如果您在投反对票之前稍等,我将能够在 jsfiddle 中进行测试。
编辑
有效,jsfiddle proof
我知道如果我有一个元素触发一个事件,它会传播到根,然后向下传播到原始元素。基本上,所有的祖先都会得到通知。却要通知所有的子孙。我可以这样做吗?
谢谢,瑞克
这是可能的,我的代码可能有一些错误,但这里是:
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);
}
如果您在投反对票之前稍等,我将能够在 jsfiddle 中进行测试。 编辑 有效,jsfiddle proof