Не удается заставить функцию click () работать на jQuery - PullRequest
3 голосов
/ 10 февраля 2010

Заранее спасибо за помощь:

Эта функция отлично работает при удалении элемента div из функции первого щелчка, но НЕ БУДЕТ подтверждать функцию второго щелчка в любом качестве.

Я даже могу активировать функцию первого щелчка столько раз, сколько захочу.

Чего мне не хватает? Я рву на себе волосы.

$('span[rel="confirm"]').click( function() {
    $('.confirmbox').remove();

    targetpath = $(this).attr("targetpath");
    dbid = $(this).attr("dbid");

    $(this).after('<div><span class="closeout">X</span> &nbsp Are you sure you want to <a href="index.php?cmd=deletesample&id=' + dbid + '&filetarget=' + targetpath + '">delete?</a></div>');
    $('.confirmbox').show(200);
});

$('.closeout').click( function() {
    $('.confirmbox').css('background-color', 'green');
});

Ответы [ 2 ]

7 голосов
/ 10 февраля 2010

Вы добавляете элемент динамически, поэтому вместо него вам нужно использовать $ .live ():

$('.closeout').live("click", function(){
    $('.confirmbox').css('background-color', 'green');
});
5 голосов
/ 10 февраля 2010

Поскольку вы имеете дело с динамическими элементами DOM, вам нужно вместо этого поменять свой click () на событие live () ...

$('.closeout').live('click', function() {
    $('.confirmbox').css('background-color', 'green');
});

Вот краткое демо на основе вашего кода текст ссылки

Для получения дополнительной информации о live () проверьте http://api.jquery.com/live/

...