为什么 'event' 在 Chrome 中全局可用,但在 Firefox 中不可用?
Why is 'event' available globally in Chrome but not Firefox?
在回答另一个问题时,出现了一个奇怪的错误,该错误与 event
对象在匿名函数中可用而不被传入有关。在 Chrome 下面工作正常,但是 Firefox 抛出错误。
$(document).ready(function() {
$("#uspsSideboxTrackingClose").click(function() {
event.preventDefault();
console.log(event);
});
});
Chrome:
FireFox:
ReferenceError: event is not defined
已经知道
$("#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);
});
});
在回答另一个问题时,出现了一个奇怪的错误,该错误与 event
对象在匿名函数中可用而不被传入有关。在 Chrome 下面工作正常,但是 Firefox 抛出错误。
$(document).ready(function() {
$("#uspsSideboxTrackingClose").click(function() {
event.preventDefault();
console.log(event);
});
});
Chrome:
FireFox:
ReferenceError: event is not defined
已经知道
$("#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);
});
});