-1

这是基本场景。我有一组列表元素。

<ul>
  <li>
    <span class="c-id" style="display: none;">1</span>
    <a class="remove_comment">Remove</a>
  </li>
  <li>
    <span class="c-id" style="display: none;">2</span>
    <a class="remove_comment">Remove</a>
  </li>
  <li>
    <span class="c-id" style="display: none;">3</span>
    <a class="remove_comment">Remove</a>
  </li>
</ul>

c-id 代表commentID,每个都有自己的唯一标识符。我创建了一个点击事件,如下所示:

$('.remove_comment').on('click', function() {
    var commentBlock = $(this).parent('li');
    var commentID = parseInt(commentBlock.find('.c-id').text());
    console.log(commentID);
});

正如你所看到的,我正在使用控制台来确保它正在获取适当的 ID,它确实如此。但是,它会执行 3 次控制台日志。因此,对于此示例,如果我单击第三个删除链接,它将在控制台中登录 #3,3 次。如果我有 10 个列表元素并在第 3 个上单击删除,它将记录数字 3、10 次。所以它直接关系到页面上有多少 li 元素。

为什么要这样做?基本上我希望它记录一次,和一个值。

非常感谢你的帮助。

4

1 回答 1

0

您可能正在为页面上的每个项目添加事件。但是您编写的事件代码适用于所有项目,这意味着每个项目都会获得 N 次相同的事件,其中 N 是您添加的项目数。

于 2013-07-14T22:36:14.097 回答