2010-02-10 1 views
3

Заранее спасибо за помощь:Невозможно получить нажмите функцию(), чтобы работать на JQuery

Эта функция отлично работает в сбросив в 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'); 
}); 
+0

+1 Добро пожаловать на переполнение стека, @ user257878 – Sampson

ответ

7

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

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

Ха ... Я должен обновилась и видел ваш ответ перед отправкой;) –

+0

@ElijahManor Мы все были там:) Технически ваш ответ * другой *, чем мой;) Я передам +1 ваш путь! – Sampson

+0

Спасибо, ребята, так что так много за помощь и объяснение. Я подумал, что это проблема, но понятия не имела, с чем начать поиск решения. – dclowd9901

5

Поскольку вы имеете дело с динамическими элементами DOM, вам необходимо изменить свой нажмите() к живой() событие вместо ...

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

Вот краткий демо на основе кода link text

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