我想通过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()注册点击事件
>结果:作品
这里有什么问题吗
谢谢.
附:使用addEventListener()的原因是我想在没有jQuery的情况下编写一个库.
解决方法
尝试使用
EventTarget.dispatchEvent
你的代码将是这样的
var elem = document.getElementById('square'); elem.addEventListener('mousedown',function () { alert('on'); }); elem.dispatchEvent(new Event('mousedown'))
如果您正在考虑使用IE,可能需要使用fireEvent.
object.fireEvent(bstrEventName,pvarEventObject,pfCancelled)
会是这样的
if (document.createEvent) { element.dispatchEvent(event); } else { element.fireEvent("on" + event.eventType,event); }