javascript – 由addEventListener注册的jQuery触发器mousedown

前端之家收集整理的这篇文章主要介绍了javascript – 由addEventListener注册的jQuery触发器mousedown前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过jQuery trigger()方法来模拟假mousedown事件,我通过本机 javascript方法(addEventListener())注册mousedown事件.我发现它不能被触发…
elem.addEventListener('mousedown',function () {
    alert('addEventListener');
});
$(elem).on('mousedown',function () {
    alert('on');
});
$(elem).trigger('mousedown');

Sample in jsFiddle

我做了一些测试.

>通过jQuery on()注册mousedown事件

>结果:作品

>通过addEventListener()注册点击事件

>结果:作品

这里有什么问题吗

谢谢.

附:使用addEventListener()的原因是我想在没有jQuery的情况下编写一个库.

解决方法

尝试使用
EventTarget.dispatchEvent

MDN link

你的代码将是这样的

var elem = document.getElementById('square');
elem.addEventListener('mousedown',function () {
    alert('on');
});

elem.dispatchEvent(new Event('mousedown'))

如果您正在考虑使用IE,可能需要使用fireEvent.

object.fireEvent(bstrEventName,pvarEventObject,pfCancelled)

MSDN link

会是这样的

if (document.createEvent) {
    element.dispatchEvent(event);
} else {
    element.fireEvent("on" + event.eventType,event);
}
原文链接:https://www.f2er.com/jquery/155231.html

猜你在找的jQuery相关文章