Why is #39;event#39; available globally in Chrome but not Firefox?(为什么Chrome可以在全球范围内使用#39;event而不能在Firefox中使用?)
问题描述
在计算另一个问题的答案时,出现了一个奇怪的错误,该错误与匿名函数中的event
对象在没有传入的情况下可用有关。在Chrome中,以下操作运行正常,但Firefox抛出错误。
$(document).ready(function() {
$("#uspsSideboxTrackingClose").click(function() {
event.preventDefault();
console.log(event);
});
});
铬:
Firefox:
ReferenceError:未定义事件
已知
$("#uspsSideboxTrackingClose").click(function(event) { .. }
在两种浏览器中都适用。Here是有问题的代码。这是Chrome或Firefox的错误,还是这两种浏览器的故意行为?哪个浏览器是正确的?
推荐答案
在IE中,事件对象was a global object(不传递给处理函数),但作为全局对象访问。您还可以将其作为Window对象的属性进行访问,如window.event
在FF和其他浏览器中,事件对象是作为参数传递的,因为在FF中没有名为event
的全局属性,所以您会收到错误消息。
在Chrome中,他们添加了对这两个功能的支持,因此您将获得作为全局引用和参数的事件对象。
但由于您使用的是jQuery,jQuery会规范化这两种行为,并始终将事件对象作为参数传递给事件处理程序。
$(document).ready(function () {
$("#uspsSideboxTrackingClose").click(function (event) {
event.preventDefault();
console.log(event);
});
});
这篇关于为什么Chrome可以在全球范围内使用';event而不能在Firefox中使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为什么Chrome可以在全球范围内使用';event而不能在Firefox中使用?
- 使用 iframe URL 的 jQuery UI 对话框 2022-01-01
- 为什么我的页面无法在 Github 上加载? 2022-01-01
- 如何向 ipc 渲染器发送添加回调 2022-01-01
- 我不能使用 json 使用 react 向我的 web api 发出 Post 请求 2022-01-01
- 从原点悬停时触发 translateY() 2022-01-01
- 为什么悬停在委托事件处理程序中不起作用? 2022-01-01
- 如何调试 CSS/Javascript 悬停问题 2022-01-01
- 如何显示带有换行符的文本标签? 2022-01-01
- 在不使用循环的情况下查找数字数组中的一项 2022-01-01
- 是否可以将标志传递给 Gulp 以使其以不同的方式 2022-01-01