mouseEvent.initMouseEvent的参数不足
not enough arguments to mouseEvent.initMouseEvent
以下JS代码在Safari上正常工作:
var a = $('.shell a')[0];
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window);
a.dispatchEvent(evObj);
然而,这条线路
evObj.initMouseEvent('click', true, true, window);
在Firefox中给我以下错误:
TypeError: Not enough arguments to MouseEvent.initMouseEvent.
我应该使用什么来实现多浏览器兼容性?
正如您在MDN的initEvent
页面上看到的那样,不赞成使用这样的事件。"改用事件构造函数":
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
在您的情况下:
var evObj = new Event('click');
a.dispatchEvent(evObj);
但是click
事件要简单得多!原生DOM对所有元素都有一个click()
方法,因此您可以这样做:
a.click();
就是这样。
如果您想触发自定义事件或类似mouseover
的事件,您仍然可以使用(新的)事件调度系统:new Event('mouseover')
etc
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- jquery设置为使用参数运行
- Javascript”;类“;带有参数的扩展
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 函数未将值作为参数传递
- 如何将参数传递到angularJs中的工厂
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- MVC 3页面导航和使用javascript传递参数
- 从查询字符串参数推断出正确的数据类型
- 传递包含'%的参数'在URL中
- 为什么不'我们在javascript中使用函数参数的数据类型
- Webdriver.io pageObject模式-通过传递参数来定义元素选择器