Обратный вызов виджета Jquery. Получение функции для стрельбы - PullRequest
0 голосов
/ 31 декабря 2010

Я добавил обратный вызов в виджет jquery. Он будет выводить данные в консоли, но как мне заставить его применить что-то к данным на странице?

Пример ...

в настройках своего виджета я сделал доступным следующее для получения ввода:

 complete        : ''

и также добавили метод к виджету:

_complete : function(data) {
        if(this.options.complete) {
            console.log(data);
        }
    }

В другом методе виджета я делаю вызов ajax, а затем вызываю, используя этот метод _complete для запуска после завершения ajax, как:

self._complete(self.options.complete);

Так что, если при использовании виджета я передаю что-то параметру complete, например, так:

complete : function(){$('.gridrow').css('background-color','#FFF');}

Я увижу этот вывод в консоли как:

function(){$('.gridrow').css('background-color','#FFF');}

Но на самом деле я хочу применить это к коду, чтобы он изменил цвет фона классов гридов.

Я могу передать что угодно и получить его вывод в консоли, но как мне на самом деле применить его к странице?

1 Ответ

1 голос
/ 31 декабря 2010

Я не уверен, почему вам нужно передать функцию complete в вашу функцию _complete, конечно, вы можете просто проверить ее и затем выполнить. Главное изменение заключается в том, что вы должны вызвать функцию complete, используя ():

_complete : function() {
        if (this.options.complete) {
            this.options.complete(); // execute the input function
        }
    }

Если вы хотите записать результат этой функции на консоль, убедитесь, что complete возвращает значение:

complete : function() { return $('.gridrow').css('background-color','#FFF'); }

Тогда:

_complete : function() {
        if (this.options.complete) {
            console.log(this.options.complete()); // print the result
        }
    }
...