我有一个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对象可以看到的情况来看)。
有人有什么想法吗?
发布于 2010-11-03 21:38:47
可能其中一个事件正在冒泡到表单,从而导致提交。可能是在onSelectRow上绑定的方式--尝试在其中添加一个event.preventDefault()。
还可以挂钩表单提交事件,然后检查event.originalEvent和event.originalTarget。
此外,我建议不要将onclick属性与现代jQuery行为绑定混合。
https://stackoverflow.com/questions/4093985
复制