addEventListener注册的jQuery触发器mousedown
jQuery trigger mousedown registered by addEventListener
我想用jQuery trigger(
方法模拟假mousedown
事件,用原生JavaScript方法addEventListener()
注册mousedown
事件。我发现它无法触发:
elem.addEventListener('mousedown', function () {
alert('addEventListener');
});
$(elem).on('mousedown', function () {
alert('on');
});
$(elem).trigger('mousedown');
jsFiddle 中的样本
我做了一些测试。
- 通过jQuery
on()
注册mousedown
事件
- 结果:工作
- 通过
addEventListener()
注册click
事件
- 结果:工作
这里有什么问题吗?
附言:我之所以使用addEventListener()
,是因为我想写一个没有jQuery的库。
尝试使用
EventTarget.dispatchEvent
MDN链路
您的代码将类似
var elem = document.getElementById('square');
elem.addEventListener('mousedown', function () {
alert('addEventListener');
});
$(elem).on('mousedown', function () {
alert('on');
});
elem.dispatchEvent(new Event('mousedown'))
如果您正在考虑IE,则可能必须使用fireEvent
。
object.fireEvent(bstrEventName, pvarEventObject, pfCancelled)
MSDN链接
就像
if (document.createEvent) {
element.dispatchEvent(event);
} else {
element.fireEvent("on" + event.eventType, event);
}
即使是订单也很重要,比如:this Works
$(elem).on('mousedown', function () {
alert('on');
});
$(elem).trigger('mousedown');
但以下代码将不起作用
$(elem).trigger('mousedown');
$(elem).on('mousedown', function () {
alert('on');
});
看看这个DEMO FIDDLE
相关文章:
- 悬停功能触发器
- jQuery触发器点击未从AJAX成功工作
- 为什么会返回触发器('点击')
- 有没有一种方法可以检测ios<>使用jquery和触发器操作形成导航按钮
- jQuery自动完成触发器在选择时返回
- 用键盘分页jQuery下一个和上一个控件.触发器('点击')不'不起作用
- Meteor出版物'是这样的吗;t触发器
- JS触发器值检查在文档加载后添加到页面的元素在加载时更改AND
- 使用谷歌图表将mousedown事件注册为click
- jQuery触发器事件在一个循环中多次出现
- 如何在更新面板内部调用/触发javascript函数<触发器>标签
- 触发器方法在javascript对象中定义,但在对象本身之外
- API GET或Zapier触发器到POST操作
- 如何知道鼠标按钮的当前状态(mouseup状态或mousedown状态)
- AngularJS选择更改触发器
- 触发器<输入类型=“;文件“>用angular程序选择文件
- jquery触发器可以从点击开始工作,但没有准备好
- 不更改路由位置backline.js的触发器方法
- 每次只在第一个上单击事件触发器
- addEventListener注册的jQuery触发器mousedown