阻止单击按钮多次附加内容

时间:2013-01-26 00:15:42

标签: jquery

您好我有一个代码可以在覆盖

上打开外部链接
    $('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附加到正文。

按钮代码是

    <a href="/php/my-page.php"  class="overlay-2" rel=".overlay-contato">click </a>

2 个答案:

答案 0 :(得分:1)

请先检查一下您可能要追加的div是否存在。

// 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 :(得分:1)

您应该在点击处理程序之外初始化叠加层。每次单击时,您只想显示叠加层的新实例