淡出附加的链接的父元素(使用jquery)

时间:2011-03-10 23:35:55

标签: javascript jquery append

我有一个空div,我正在附加一些带有html和两个链接的文本。一个链接是正常的,href =“some url”,另一个是带有类的元素。简而言之:这是一个“是|否”的块。是的是一个普通的网址,而NO是一个会淡出整个div的元素。

问题是我的div没有淡出。

HTML:

(用css:display:block从开始隐藏它)

JS:

   // THE TEXT
    var lbText = 'Thanks for helping us! Here\'s a preview of the part of gelattina you\'re about to take.';
        lbText = lbText + '<br /><img src="img/g10/OldGelattina'+cpNum+'.jpg" />';
        lbText = lbText + '<br /> <a href="claim.php?id='+cpNum+'">YES</a> | <a href="#" class="no">NO</a>'

                // I USE THIS CODE TO APPEND THE TEXT AND FADE IN THE ENTIRE DIV
$('.not-claimed').bind('click',function(){
            $('#lightboxcont').empty().append(lbText).css({
                'width': '30%',
                'height': '30%',
                'background': '#ffffff',
                'zIndex': '9999'
            }).fadeIn().center();

            $('#lightboxOverlay').fadeIn();
});

下一个代码就是我用来隐藏de whole div

$('#lightboxcont a').bind('click',function(){
        $("#lightboxOverlay").fadeOut();
        $('#lightboxcont').fadeOut().empty();
        return false;
    });

正如我所说,问题是最后一个jquery代码无效,我不知道为什么。

我希望你理解,抱歉我的英语。

4 个答案:

答案 0 :(得分:1)

Jquery的绑定方法仅附加到首次调用时可用的匹配元素。但它们包括“实时”方法,该方法现在附加到所有匹配元素,并在将来创建。因此,如果在绑定事件后附加html,请尝试使用:

$('#lightboxcont a').live('click',function(){
    $("#lightboxOverlay").fadeOut();
    $('#lightboxcont').fadeOut().empty();
    return false;
});

将绑定更改为live。 http://api.jquery.com/live/

答案 1 :(得分:0)

在将事件添加到DOM之前,您是否尝试将事件附加到<a>标记?如果您在.not-claimed点击事件中调用“下一个代码”,在追加后,它可能会起作用

你的“点击”功能是否会被执行?

答案 2 :(得分:0)

bind更改为live。绑定不适用于动态添加的元素。

$('#lightboxcont a').live('click',function(){
    $("#lightboxOverlay").fadeOut();
    $('#lightboxcont').fadeOut().empty();
    return false;
});

答案 3 :(得分:0)

谢谢你们!使用live而不是bind来解决这个问题......我真的很感激!

$('#lightboxcont a')。live('click',function(){     $( “#lightboxOverlay”)淡出();     。$( '#lightboxcont')淡出()空();     返回false; });

问候!!