我有 7 列(使用 html Kendo Grid),ID 列是每行的 PK 及其可见(false)。所以..当你点击任何“名称”数据时,它会抓取你选择的行的PK(不可见的ID),并且会弹出一个模式屏幕,以便你可以看到更详细的信息。目前,它按预期工作,但是,当页面第一次加载时,我必须双击它才能显示模式屏幕。一旦模式屏幕显示,之后,onclick 事件按预期工作。但我刚刚注意到,当我按 F12 键查看日志时,每次 onclick 事件调用时,单击次数都会增加(例如... x2 x3 等)。当我调试时,它在我的代码中达到了调试点,但立即消失了,所以我很难调查。谢谢你的帮助。------具有 onclick 事件的列------Columns(columns => {columns.Bound(o => o.SiteID).Visible(false); columns.Bound(o => o.Name).Title("Your Name").HeaderHtmlAttributes(new {title = "Name(s)"}).ClientTemplate("<a class='nameLink' onclick=\"EditSite(#:SiteID#);\" style='cursor:pointer;' SiteID=\'#=SiteID#\'>#=Name#</a>");----Jquery onclick 事件 ------function EditSite(SiteID) {debugger;$('.nameLink').on('click', function () { $('#popUpEdit').dialog({ width: 1000, height: 920, show: 'fadein', hide: 'fadeout', buttons: { "Close": function () { $(this).dialog("close"); } }, close: function () { $("#popUpEdit input").val(""); $('#popUpEdit input').prop('checked', false); $('#statusMessage').html(""); } }); NameDetails(SiteID);});};
1 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
每次调用 EditSite 函数时,您都在绑定一个 onClick 函数。尝试使用 .off() 解除任何现有处理程序的绑定。
$('.nameLink').off().on('click', function () { }
还可以尝试包装您的函数,以便您可以传递您的 SiteID 参数。
(不确定这个的正确语法)
onclick="EditSite(#:SiteID#)"
包装函数
function EditSite(SiteID) {
return function() {
$('#popUpEdit').dialog({
width: 1000,
height: 920,
show: 'fadein',
hide: 'fadeout',
buttons: { "Close": function () { $(this).dialog("close"); } },
close: function () {
$("#popUpEdit input").val("");
$('#popUpEdit input').prop('checked', false);
$('#statusMessage').html("");
}
});
NameDetails(SiteID);
}
}
添加回答
举报
0/150
提交
取消