Fade Out родительский элемент ссылки, которая была добавлена ​​(с помощью jquery) - PullRequest
0 голосов
/ 11 марта 2011

У меня есть пустой div, и я добавляю текст с html и двумя ссылками.Одна ссылка нормальная с href = "some url", а другая является элементом с классом.Короче говоря: это блок «да | нет».Да - это обычный URL-адрес, а НЕТ - это элемент, который затухает весь элемент 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 не работает, и я не знаю почему.

Надеюсь, вы понимаете, извините за мой английский.

Ответы [ 4 ]

1 голос
/ 11 марта 2011

Метод связывания Jquery привязан только к совпадающим элементам, которые доступны во время его первого вызова. Но они включают в себя «живой» метод, который присоединяется ко всем соответствующим элементам сейчас и которые создаются в будущем. Поэтому, если вы добавляете html после привязки события, попробуйте использовать:

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

Изменить привязку, чтобы жить. http://api.jquery.com/live/

0 голосов
/ 11 марта 2011

Спасибо, ребята !!! эта проблема была решена с использованием Live вместо Bind ... Я действительно очень благодарен!

$ ('# lightboxcont a'). Live ('click', function () { . $ ( "# LightboxOverlay") Затухание (); .. $ ( '# Lightboxcont') Затухание () пусто (); вернуть ложь; });

Привет !! * * 1005

0 голосов
/ 11 марта 2011

Измените bind на live.Привязка не будет работать для динамически добавляемых элементов.

$('#lightboxcont a').live('click',function(){
    $("#lightboxOverlay").fadeOut();
    $('#lightboxcont').fadeOut().empty();
    return false;
});
0 голосов
/ 11 марта 2011

Вы пытаетесь прикрепить событие к тегам <a>, прежде чем добавить их в DOM?Если бы вы вызывали этот «следующий код» из события .not-claimed click, то после добавления он, вероятно, сработает

Будет ли когда-либо выполняться ваша функция «click»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...