【发布时间】:2011-10-14 09:46:14
【问题描述】:
我有一个对象,它有一个方法,我想成为网格中的回调。我该怎么做?
无效的示例代码:
var GridHolder = function() {
//...
this.lastSel = null;
//...
};
GridHolder.prototype = {
//...
someAction : function(id){ /*doSomeWork();*/},
rowSelect : function(id){
this.someAction(id); // failed
if(id && id !== this.lastSel){
jQuery('#grid_id').restoreRow(this.lastSel);
this.lastSel=id;
}
jQuery('#grid_id').editRow(id, true);
}
//...
};
var gridHolder = new GridHolder();
jQuery('#grid_id').jqGrid({
//...
onSelectRow: gridHolder.rowSelect,
//...
});
现在 jqGrid 用 'call' 调用回调,在方法中用 'this' 代替。
即:
if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t, pt.id , stat); } // this === $t in callback instead of gridHolder
【问题讨论】:
标签: javascript methods jqgrid callback