jQuery按钮调试 - 确定导致导航/回发事件的原因

时间:2010-11-04 04:51:08

标签: javascript jquery debugging dom javascript-events

我有一个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对象看到的内容)。

有人有什么想法吗?

1 个答案:

答案 0 :(得分:1)

可能其中一个事件正在冒泡到表格,导致提交。可能从你绑定onSelectRow的方式 - 尝试在那里添加event.preventDefault()。

同时挂钩表单提交事件,然后检查event.originalEvent和event.originalTarget。

另外,我建议不要将onclick属性与现代jQuery行为绑定混合使用。