我是JQuery的新手,我遇到了一些麻烦
function Clients(guid)
{
var that = this;
this.guid = guid;
this.container = $("#Clients_" + that.guid);
this.LoadClients = function () {
var ids = that.container.find("#clients-tbl").getDataIDs();
for (var i = 0; i < ids.length; i++) {
var row = that.container.find("#clients-tbl").getRowData(ids[i]);
var imgView = "<img src='../../Content/Images/vcard.png' style='cursor:pointer;' alt='Open case' onclick=OnClickImage(" + ids[i] + "); />";
that.container.find("#clients-tbl").setRowData(ids[i], { CasesButtons: imgView });
}
}
this.CreateClientsGrid = function () {
var clientsGrid = that.container.find("#widget-clients-tbl").jqGrid({
.....
ondblClickRow:function(rowid)
{
---
}
loadComplete: function () {
that.LoadClients();
}
}
this.OnClickImage=function(idClient){
....
}
this.Init = function () {
that.CreateClientsGrid();
};
this.Init();
}
问题在于onclick,因为OnClickImage不是全局函数。 我如何使用OnClickImage函数?
答案 0 :(得分:0)
您可以通过不同方式绑定到click
事件。例如,您可以按照the answer的方式进行操作。顺便说一句,它的工作速度更快getRowData
和setRowData
。此外,您应该将that.container.find("#clients-tbl")
操作的结果保存在循环的外中,并使用循环内的变量。 JavaScript是动态语言,每次操作都会ids.length
。
另一种方法是使用onCellSelect
事件而不使用 click
事件绑定。请参阅描述该方法的the answer并给出相应的演示。