Jquery widget обратный вызов. Получение функции для стрельбы

StackOverflow https://stackoverflow.com/questions/4571891

Вопрос

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

Пример...

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

 complete        : ''

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

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

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

self._complete(self.options.complete);

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

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

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

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

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

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

Это было полезно?

Решение

Я не уверен, почему вам нужно пройти в 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
        }
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top