1

我有一个模板文件,它动态包含DIV在单个页面中的两个或多个中: div 将如下所示: 1. VIEW div 2. EDIT div 其他可以是 - RESOLUTION div ...

EDIT divdisplay none在 VIEW div 出现和反转的同时出现。所以,一次只能出现一个。

模板文件包含以下 javascript:

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

现在,当我单击add按钮(存在于模板文件中)然后它执行上面的事件,它应该添加一行并打印一条日志消息,但是它执行双倍所以,最初执行两次(作为两个屏幕中包含的模板)和打印两次消息“调用”,经过一段时间后,它执行了 4 次。我希望它应该只执行一次并且只打印一次“调用”消息。

我该如何解决这个问题。

看起来由于 javascript 被添加了多次..但是我如何控制将它单次添加到页面中或任何其他方式来解决这个问题?

谢谢你

4

2 回答 2

2

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

AJS.$(document).on('click', '#addROW', function (event) {
    if (event.handled !== true) {
        //put your code here
        event.handled = true;
    }
    return false;
}
于 2013-07-13T06:02:08.597 回答
1

试试这个

AJS.$(document).on('click', '#addROW', function(event)
{
  event.stopPropagation();
  console.log('calling');
  ....
  ..
}
于 2013-07-13T05:55:12.443 回答