目標:在.ajaxStart()
上運行某些功能,但僅限於由特定事件觸發。在Firefox中訪問全局事件對象
代碼:
$('#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();
});
}
}
});
問題:這並不工作在Firefox。在Internet Explorer和Chrome中,我可以愉快地訪問事件對象,而不必將它傳遞給.ajaxStart(function()
。但是,在Firefox中,事件對象是undefined
。
顯而易見但不正確的解決方案:傳遞event
對象的功能。這將無法正常工作,因爲它會通過ajaxStart事件,我的檢查將不再工作。
問題:如何在此函數中訪問全局事件對象?
你可能不應該。如果回調沒有在Firefox中傳遞給一個事件對象,那麼它可能不會被觸發以響應事件:-)相反,它可能是直接調用的代碼中的「鉤子」(而不是通過.trigger)。 – 2012-03-27 10:03:29
..好的不是: - /。目前還不清楚jQuery文檔中這個函數的作用範圍,但它肯定會被觸發。 – 2012-03-27 10:06:02