【发布时间】:2010-12-31 09:47:09
【问题描述】:
我想向 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.
就我而言,我使用的是网格。网格通过 ajax 调用加载一些 json 数据,然后,现在 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 访问,那么在 if ($.isFunction(callback)) callback(level); 中调用 level 的 callback 方法来自哪里?我很混乱。 :(
【问题讨论】:
标签: javascript jquery callback widget