Jquery函数触发两次

时间:2014-03-11 15:39:09

标签: javascript jquery ajax

这似乎是stackoverflow上一个记录良好的问题,我看了很多其他条目,但我似乎无法得到修复。

我有一个链接:

 <a href="#" class="edit-settings">link</a>

和JQuery函数

  $(document).on("click","a.edit-settings",function(){
  //do stuff here, including an ajax function
  }

我读到一条建议,你可以使用JQuery的one()函数,但这会导致使用ajax插入DOM的内容出现问题。我也尝试使用stopPropagation(),但没有运气。

如何让事件只触发一次,但是读取之间的任何DOM变化?

由于

2 个答案:

答案 0 :(得分:0)

$(document).on("click","a.edit-settings",function(){
    //do stuff here, including an ajax
    return false; 
});

如果这没有帮助:

$(document).on("click","a.edit-settings",function(e){
    if(e.handled != true)
    {
        e.handled = true;
        //do stuff here, including an ajax
        return false; 
    }
});

答案 1 :(得分:0)

好的,问题解决了。我可以说,有些尴尬的是,这个问题是由@KevinB建议的不止一次运行代码的UI工具包引起的。链接中的数据属性(我遗憾地没有包含在问题中)触发了一个div出现在ui工具包中,同时运行我的custom-ui.js函数。

供您参考:

我之前的链接:

 <a href="#edit-nfc" data-uk-offcanvas 
    class="edit-nfc-settings uk-icon-button uk-icon-rss">
</a>

...之后(使用span来修复问题。可能有点破解,但这意味着我可以保持UI工具包标准和我的custom-ui.js分开。事件现在只触发一次)

<a href="#edit-nfc" data-uk-offcanvas>
  <span class="edit-nfc-settings uk-icon-button uk-icon-rss" data-uk-tooltip="{pos:\'right\'}" title="Setup NFC"><span>
</a>