点击按钮内的JS函数被调用两次

时间:2013-11-21 16:13:25

标签: javascript jquery twitter-bootstrap

嗨,我有以下一段代码给了我奇怪的行为

$("#cont_btn").click(function () {
    $("#cont_btn").attr('disabled', 'disabled');
    selRowIds = $("#CodeGrid").jqGrid('getGridParam', 'selarrrow');
    rowsToJson(selRowIds);
    //return false;
});

按钮cont_btn是bootstrap 2模式上的按钮。它包含一个继续按钮和一个关闭按钮。

如果我选择关闭按钮或在模态外部单击以关闭它,然后重新打开模态,该函数将被调用两次。

我尝试过使用

.one('click', function() { ... } 

我已经把断点放在了第一行 $("#cont_btn").click(...

点击不会被调用两次。在调试期间,我发现脚本重新进入

 $("#cont_btn").attr('disabled', 'disabled');

在页面加载中,我看到

$("#cont_btn").click(function () {

被点击但是代码没有进入它将跳到关闭按钮的功能。我认为这是两个按钮初始化的监听器?

谷歌搜索已建议检查脚本未被调用两次并使用return false,但没有任何效果。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

事件处理程序位于打开模态的函数内部,因此每次打开模态时,事件处理程序都会再次绑定。