【问题标题】:Fade Out parent element of a link which was appended (with jquery)淡出附加的链接的父元素(使用jquery)
【发布时间】:2011-03-20 00:45:22
【问题描述】:

我有一个空的 div,我在其中添加了一些带有 html 的文本和两个链接。一个链接是正常的,带有 href="some url",另一个是带有类的元素。简而言之:这是一个“是|否”块。 Yes 是一个普通的 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();
});

下一个代码是我用来隐藏整个 div 的代码

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

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

希望你能理解,对不起我的英语。

【问题讨论】:

    标签: javascript jquery append


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      您是否尝试在将事件添加到 DOM 之前将其附加到 &lt;a&gt; 标签?如果您要从.not-claimed click 事件中调用“下一个代码”,那么在追加之后,它可能会起作用

      你的“点击”功能是否曾经被执行过?

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          谢谢大家!!!使用 live 而不是 bind 解决了问题...我真的很感激!

          $('#lightboxcont a').live('click',function(){ $("#lightboxOverlay").fadeOut(); $('#lightboxcont').fadeOut().empty(); 返回假; });

          你好!!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-08-17
            • 1970-01-01
            • 2012-03-14
            • 1970-01-01
            • 2011-07-14
            • 1970-01-01
            相关资源
            最近更新 更多