原调用时动态绑定了click事件,但是调用的时候发现总是重复调用几次。
function OpenAddIdx(st,et)
{
console.log('OpenAddIdx');
$('#div_addIndex').modal();
$('#btn_addIdxCon').click(function () {
addIdxAndReDrowLine(st, et);
});
}
问题现象:每次调用OpenAddIdx,打开对话框,显示正常,当单击按钮“btn_addIdxCon”,重复调用N次addIdxAndReDrowLine,
并且N不固定,有时候1次,有时候2次,甚至更多。开始只在addIdxAndReDrowLine内部找原因,一直没有正常,后来才发现是调用了多次addIdxAndReDrowLine。
分析:jquery的click是给元素绑定事件并调用,我OpenAddIdx多次,就调用了多次click事件,触发的时候就造成多次调用了。
修改代码为:
function OpenAddIdx(st,et)
{
console.log('OpenAddIdx');
$('#div_addIndex').modal();
$("#btn_addIdxCon").attr("onclick", "addIdxAndReDrowLine('" + st + "','" + et + "')");
}
功能正常,bug排除了。
总结:jquery的click和attr("onclick"),的区分,click是绑定并调用,attr("onclike")只是绑定。