我有一个jQuery UI按钮,正在jqGrid列中使用。在触发onSelectRow事件并启用该行的相应按钮之前,此按钮被禁用。
生成此按钮时看起来像这样(psudocode)。
<button id=\"" + ids[i] + "_SaveButton\" class=\"SaveButton\" onclick=\"return false;\">Save</button>
$(".SaveButton").button({ icons: { primary: 'ui-icon-check' }, text: false, disabled: true }).css({ width: "45px" });
onSelectRow: function () {
$("#" + _LastSel + "_SaveButton").button("disable");
$("#" + ID + "_SaveButton").button("enable");
}
此按钮必须返回false以防止发生页面回发。
我的问题在于,当onSelectRow事件触发时,我的所有代码中的某个地方发生了回发。
有趣的是,这只发生在从包含保存按钮的列触发onSelectRow但我离题的时候。
基本上我希望有人可以告诉我如何确定哪个事件以及哪个DOM元素触发回发。我试图使用jQuery.unload()事件但是这并没有提供有关触发它的信息(至少从我通过eventData对象看到的内容)。
有人有什么想法吗?
答案 0 :(得分:1)
可能其中一个事件正在冒泡到表格,导致提交。可能从你绑定onSelectRow的方式 - 尝试在那里添加event.preventDefault()。
同时挂钩表单提交事件,然后检查event.originalEvent和event.originalTarget。
另外,我建议不要将onclick属性与现代jQuery行为绑定混合使用。