Mouse click vs jquery click vs dispatchEvent click
有人可以向我解释为什么实际点击鼠标
和$('div')。click()运行click事件3次,而$('div')[0] .dispatchEvent(new MouseEvent('click'))根据浏览器控制台仅运行一次click事件?
这是一个简单的html代码:
1 | test |
这是一个JavaScript代码:
1 2 3 4 5 6 7 8 9 | $('*').click(function(e){ console.log(e); }); var c = new MouseEvent('click'); // Actual mouse click output event 3 times //$('div').click(); // output event 3 times $('div')[0].dispatchEvent(c); // output event 1 time |
http://jsfiddle.net/5uvjwa4t/2/
谢谢
星号也匹配
1 2 3 | $('*') // matches all elements, including html and body $('div') // matches the DIV only |
当您单击嵌套这样的div时,
1 2 | <html> <body> |
该点击会向上传播(冒泡)并在所有父元素上触发。
在Chrome中,使用
为了使其始终起泡,可以设置
1 | var c = new MouseEvent('click', {bubbles:true}); |