我想用jQuery的trigger()
方法模拟假的mousedown
事件,并且我使用本地JavaScript方法addEventListener()
注册mousedown
事件。但是我发现它无法触发:
elem.addEventListener('mousedown', function () {
alert('addEventListener');
});
$(elem).on('mousedown', function () {
alert('on');
});
$(elem).trigger('mousedown');
我对此进行了一些测试。
- 使用 jQuery 的
on()
注册mousedown
事件
- 结果:有效
- 使用
addEventListener()
注册click
事件
- 结果:有效
这里有什么问题吗?
P.S. 我之所以使用 addEventListener()
是因为我想编写一个不依赖 jQuery 的库。
.on()
或其快捷方法之一附加的任何事件处理程序都会被触发”,但没有说明trigger()
将触发本地事件! - adeneodispatchEvent
来触发本地事件,但实际解决方案(跨浏览器)并不简单,所以最好是jQuery解决这个跨浏览器问题。但是你可以尝试编写自己的插件并重复使用它。 - King King