由addEventListener注册的jQuery触发器mousedown [英] jQuery trigger mousedown registered by addEventListener
本文介绍了由addEventListener注册的jQuery触发器mousedown的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想通过jQuery trigger()方法模拟假mousedown事件,并通过本机javascript方法注册mousedown事件 - addEventListener()。我发现它无法触发......
I want to simulate fake mousedown event by jQuery trigger() method, and I register mousedown event by native javascript method - addEventListener(). And I found it can't be triggered...
elem.addEventListener('mousedown', function () {
alert('addEventListener');
});
$(elem).on('mousedown', function () {
alert('on');
});
$(elem).trigger('mousedown');
我做了一些测试。
- 注册mousedown事件通过 jQuery on()
- 结果:工作
- 结果:工作
这里有什么问题吗?
谢谢。
PS使用addEventListener()的原因是我想编写一个没有jQuery的库。
P.S. The reason why uses addEventListener() is that I want to write a library without jQuery.
推荐答案
尝试使用
EventTarget.dispatchEvent
您的代码将类似于
var elem = document.getElementById('square');
elem.addEventListener('mousedown', function () {
alert('addEventListener');
});
$(elem).on('mousedown', function () {
alert('on');
});
elem.dispatchEvent(new Event('mousedown'))
你如果您正在考虑使用IE,可能必须使用 fireEvent
。
You might have to use fireEvent
if you are considering IE.
object.fireEvent(bstrEventName, pvarEventObject, pfCancelled)
它就像
if (document.createEvent) {
element.dispatchEvent(event);
} else {
element.fireEvent("on" + event.eventType, event);
}
这篇关于由addEventListener注册的jQuery触发器mousedown的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文