El objetivo: ejecutar algunas funciones en .ajaxStart()
pero solo si se desencadena por un determinado evento.Objeto de evento global de acceso en Firefox
El código:
$('#loading_indicator').ajaxStart(function() {
if(event != null){
if(event.type == 'hashchange' || event.type == 'DOMContentLoaded'){
$(this).show();
$('#acontents').hide();
$(this).ajaxComplete(function() {
$(this).hide();
$('#acontents').show();
bindClickOnTable();
initFilterInput();
});
}
}
});
El problema: Esto no funciona en Firefox. En Internet Explorer y Chrome puedo acceder felizmente al objeto del evento sin pasarlo al .ajaxStart(function()
. Sin embargo, en Firefox, el objeto de evento es undefined
.
La solución obvia pero incorrecta: pase el objeto event
a la función. esto no funcionará porque pasará el evento ajaxStart y mis cheques ya no funcionarán.
La pregunta: ¿Cómo puedo hacer que el objeto de evento global esté accesible dentro de esta función?
Es probable que no debería. Si la devolución de llamada no se está transmitiendo a un objeto de evento en Firefox, probablemente no se active en respuesta a un evento :-) Más bien, es probable que sea un 'gancho' en el código llamado directamente (no a través de .trigger). –
..oooor no: - /. No está claro a partir de la documentación de jQuery cómo funciona esta función, pero definitivamente se "activa". –