javascript - ¿Por qué el ''evento'' está disponible globalmente en Chrome pero no en FF?
jquery javascript-events (1)
En IE, el objeto de evento
era un objeto global
(que no se pasa a la función del controlador) pero se accede como un objeto global.
También puede acceder a él como una propiedad del objeto de ventana como
window.event
En FF y otros navegadores, el objeto de evento se pasó como argumento, ya que en FF no hay una propiedad global llamada
event
, está recibiendo el mensaje de error.
En Chrome, han agregado soporte para ambas características, por lo que obtendrá el objeto de evento como referencia global y como argumento.
Pero como está utilizando jQuery, jQuery normaliza estos 2 comportamientos y siempre pasará el objeto de evento como argumento al controlador de eventos.
$(document).ready(function () {
$("#uspsSideboxTrackingClose").click(function (event) {
event.preventDefault();
console.log(event);
});
});
Mientras trabajaba en una respuesta para otra pregunta, surgió un extraño error relacionado con el objeto de
event
disponible en una función anónima sin pasarlo. En Chrome, lo siguiente funciona bien, pero FF arroja un error.
$(document).ready(function() {
$("#uspsSideboxTrackingClose").click(function() {
event.preventDefault();
console.log(event);
});
});
Cromo:
FireFox:
ReferenceError: el evento no está definido
Ya se sabe que
$("#uspsSideboxTrackingClose").click(function(event) { .. }
Funciona en ambos navegadores. Here está el código ofensivo. ¿Es esto un error con Chrome o FF, o el comportamiento previsto por ambos navegadores? ¿Qué navegador es el correcto?