DOM 事件不会在 DOM 元素中冒泡
DOM event does not bubble in off-DOM element
我有一个 DOM 元素,它还没有在 DOM 中,我想触发一个 DOM 事件。
事件不会冒泡。但是对于jQuery,它确实如此。这对我来说似乎很奇怪。
这种行为在 Safari 和 Chrome 中是可以重现的(在 Firefox 中它可以正常工作 — 事件冒泡):
var log = function(event) {console.log('Clicked on div', event);};
// Create DOM element.
var div = document.createElement('div');
// Don't append it to DOM. Though it works if we append it there.
// document.body.appendChild(div);
div.innerHTML = '<a id="outer"><span class="inner">yo</span></a>';
// Does not work.
div.addEventListener('click', log);
div.querySelector('#outer').click();
// Works!?
$(div).on('click', log);
$(div).find('#outer').click();
jQuery是否实现了自定义事件冒泡策略?是浏览器在这里错了吗?
编辑:创建了一个错误
我认为这与
$(div).find('#outer').click();
请注意,如果您选择以下情况
$("#outer").click();
它也不起作用。所以我的赌注是 JQ 也会触发div 元素的点击,而不是用 DOM 冒泡。
相关文章:
- 如何在DOM元素上按类型构建此函数
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- 如何在使用Ractive.extend()时引用DOM元素
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- 如何'剪切'DOM元素并将其显示在其他位置
- 转换<a>使用jQuery将文本字符串转换为dom元素
- d3在数据更新时错误地附加了dom元素
- 访问VueJS中的DOM元素
- 在Meteor中如何查找DOM元素(渲染后)
- IE9-添加和删除DOM元素会破坏父keydown事件
- 未捕获错误:元素缓存中id为x的DOM元素与DOM中的元素不同
- 在 ng-if 编译后访问指令中的 DOM 元素
- spin.js/angular spinner:如何将spin定位到DOM元素中(包括plunker演示)
- 如何在dom元素中插入输入标记数据插件
- Mobile Safari、jQuery以及绑定到未来的DOM元素
- 从字符串创建dom元素时添加多个类
- 如何根据客户端的屏幕大小使用javascript更改DOM元素
- 为onClick-hander插入临时DOM元素