Pau*_*ler 5 html javascript jquery dom javascript-events
我有一个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();
Run Code Online (Sandbox Code Playgroud)
jQuery是否实现了自定义事件冒泡策略?浏览器在这里出错了吗?
编辑:创建了一个bug
我认为这与
$(div).find('#outer').click();
Run Code Online (Sandbox Code Playgroud)
请注意,如果您选择
$("#outer").click();
Run Code Online (Sandbox Code Playgroud)
它也不太有效。所以我打赌 JQ 也会触发 div 元素的点击,而不是使用 DOM 冒泡。
| 归档时间: |
|
| 查看次数: |
246 次 |
| 最近记录: |