如何将事件绑定到元素和所有子节点但只触发一次?

时间:2015-02-20 14:29:06

标签: javascript jquery events jquery-mobile

这就是HTML的样子:

<a href="#" id="back-button" data-transition="slide" data-direction="reverse" data-role="button">
  <div class="nav-item-desc">Back</div>
</a>

以下是绑定点击事件的方法:

$("#back-button").contents().addBack().off().on("click", function(e)
{
});

现在,当我点击div(文本右侧)时,事件会被触发一次,当我点击链接时(按钮上的文本旁边),它会被触发两次。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您的代码应为:

$("#back-button").on("click", function(e){
    // e.target is the specific clicked element
});

答案 1 :(得分:-2)

查看http://api.jquery.com/one/

$("#back-button").contents().addBack().off().one("click", function(e){});