jquery click事件在单击中执行多次

时间:2013-07-13 05:46:18

标签: javascript jquery

我有一个模板文件,它可以动态地包含在单个页面中的两个或多个DIV内: div将在以下AS:                   1.查看div                   2.编辑div                其他可以是 - RESOLUTION div ...

EDIT div为display none,而VIEW div出现并反转。所以,一次只能出现一个。

模板文件包含以下javascript:

   AJS.$(document).on('click', '#addROW', function()
   {
      console.log('calling');
      ....
      ..
   }

现在,当我点击add按钮(存在于模板文件中)时,它执行上面的事件,它应该添加一行并打印一条日志消息但是,它执行双倍因此,最初执行两次(作为模板包含在两个屏幕中)并打印两次消息'调用',并在一段时间后,它获得双倍4次执行。我希望它只能执行一次,并且只打印一次“呼叫”消息。

如何解决此问题。

看起来好像是因为javascript被多次添加..但我如何控制将其单次添加到页面中或以任何其他方式解决此问题?

谢谢

2 个答案:

答案 0 :(得分:2)

您可以检查脚本是否已设置以分配新事件:

AJS.$(document).on('click', '#addROW', function (event) {
    if (event.handled !== true) {
        //put your code here
        event.handled = true;
    }
    return false;
}

答案 1 :(得分:1)

试试这个

AJS.$(document).on('click', '#addROW', function(event)
{
  event.stopPropagation();
  console.log('calling');
  ....
  ..
}