Я хочу добавить обратный вызов в виджет jquery.
В качестве примера я вижу, что обратный вызов в перетаскиваемом виджете заключен в следующее:
$.ui.plugin.add("draggable", "connectToSortable", {
// callbacks in here
})
Означает ли это, что я должен также обернуть свои обратные вызовы в этот $ .ui.plugin.add ({}); немного? Есть ли другой способ сделать это? Например, мог бы я иметь функцию в опциях виджета, которая могла бы справиться с этим, поэтому вызов моей сетки будет выглядеть примерно так:
var foo = {
LoadIt: function(url, formid){
var bar = '',
$('#baz').grid({
title: {somevar : true},
rowcontent: {data: setup and populate rows},
onComplete: function(){
//mycallback could go here
}
});
}
}, // another grid loader, etc.
В моем случае я использую сетку. Сетка загружает некоторые данные json через вызов ajax, а затем, теперь, когда dom заполняется сеткой, я хочу сделать с ней некоторые манипуляции (например, добавить цвет фона при наведении). Поэтому я представляю себе возможность звонить как часть сетки:
onComplete : function(){//add my background color on hover here};
Какие-либо советы или предложения о том, как подойти к добавлению обратного вызова в виджет jquery?
Пример, который я нашел, который смущает меня:
var Green5 = {
setLevel: function(x){
//...
this.element.css({background: greenlevels[level]});
var callback = this.options.change;
if ($.isFunction(callback)) callback(level);
},
// ... rest of widget definition
};
$.widget("ui.green5", Green5);
$('.target').green5({change: function(x) { alert ("The color changed to "+x); } });
Нашел это на сайте, объясняющем, как добавить обратный вызов в виджет jquery, но я не вижу ничего о бите $.ui.plugin.add
и не вижу, как change
передается в setLevel
. Как setLevel
получает функцию из change
? Если просто что-то переданное в green5 является опцией и, следовательно, доступно через this.options, то откуда взялся метод callback
, вызывающий level
в if ($.isFunction(callback)) callback(level);
? Я весьма озадачен. (