Достъп до глобален обект на събитие във Firefox

Целта: стартирайте някои функции на .ajaxStart(), но само ако са задействани от определено събитие.

Кодът:

$('#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 и моите проверки вече няма да работят.

Въпросът: Как да направя обекта за глобално събитие достъпен в тази функция?


person Wilgert    schedule 27.03.2012    source източник
comment
Вероятно не трябва. Ако обратното извикване не се предава на обект на събитие във Firefox, то вероятно не се задейства в отговор на събитие :-) По-скоро вероятно е „кука“ в кода, извикан директно (не чрез .trigger).   -  person David-SkyMesh    schedule 27.03.2012
comment
..ооо или не :-/. Не е ясно от документацията на jQuery как се обхваща тази функция, но определено се „задейства“.   -  person David-SkyMesh    schedule 27.03.2012


Отговори (1)


Можете да съхранявате обект на събитие във всяка променлива, която можете да използвате в друга функция.

Ето демонстрацията: http://jsfiddle.net/cVDbp/

person Paresh Balar    schedule 27.03.2012