首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止点击按钮多次追加内容

防止点击按钮多次追加内容
EN

Stack Overflow用户
提问于 2013-01-26 08:15:42
回答 2查看 1.4K关注 0票数 0

嗨,我有一个代码来打开覆盖上的外部链接

代码语言:javascript
复制
    $('body').append('<div class="overlay-2"><div class="contentWrap"></div>  </div>');
    $("a.overlay-2[rel]").live('click', function () {
    $("a.overlay-2[rel]").overlay({
        mask: '#333',
        onBeforeLoad: function() {
            var wrap = this.getOverlay().find(".contentWrap");
            wrap.load(this.getTrigger().attr("href"));
        }
    }).load();

    $(this).overlay().load();       
    return false;
}); 

这将附加div overlay-contato

第一次单击链接会打开一切正常,但每次我关闭覆盖并再次单击时,代码都会多次将div附加到body。

按钮代码为

代码语言:javascript
复制
    <a href="/php/my-page.php"  class="overlay-2" rel=".overlay-contato">click </a>
EN

回答 2

Stack Overflow用户

发布于 2013-01-26 08:18:11

只需检查一下,看看您可能要附加的div是否首先存在。

代码语言:javascript
复制
// note i added an id to the overlay to simplify and improve selector performance
var overlay = $('#overlay');

if(overlay.length < 1) {
  overlay = $('<div id="overlay" class="overlay-2"><div class="contentWrap"></div></div>').appendTo('body');
}

// now you can also use overlay as a variable instead of querying it from the DOM
票数 1
EN

Stack Overflow用户

发布于 2013-01-26 08:23:20

您应该在click处理程序外部初始化overlay。每次单击时,都会创建叠加的新实例,而您所要做的只是显示它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14532359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档