繁体   English   中英

jQuery函数触发两次

[英]Jquery on function firing twice

这似乎是关于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更改?

谢谢

$(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; 
    }
});

好,问题解决了。 我有些尴尬地说,问题可能是由UI代码多次运行@UIKevinB所建议的。 链接中的数据属性(很遗憾,我未在问题中未包含该属性)触发div出现在ui套件中,同时运行了custom-ui.js函数。

供你参考:

我的链接,之前:

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

...以及之后(使用跨度来解决问题。可能会有点破解,但这意味着我可以将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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM