2010-02-10 8 views
3

Merci d'avance pour l'aide:Impossible d'obtenir la fonction cliquez sur() pour travailler sur jQuery

Cette fonction fonctionne très bien en laissant tomber dans la div de la première fonction de clic, mais ne reconnaîtra pas la deuxième fonction de clic dans une capacité quoi que ce soit.

Je peux même activer la première fonction de clic autant de fois que je le souhaite.

Qu'est-ce qui me manque? Je m'arrache les cheveux pour ça.

$('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 Bienvenue sur Stack Overflow, @ user257878 – Sampson

Répondre

7

Vous ajoutez l'élément dynamique, vous devez donc utiliser .live $() à la place:

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

Ha ... Je devrais avoir rafraîchi et vu votre réponse avant de poster;) –

+0

@ElijahManor Nous avons tous été là: Techniquement, votre réponse est * différente * de la mienne;) Je vais passer +1 à votre façon! – Sampson

+0

Merci les gars tellement tellement pour l'aide et l'explication. Je pensais que c'était le problème, mais je ne savais pas par où commencer à chercher la solution. – dclowd9901

5

Puisque vous traitez avec des éléments DOM dynamiques, vous devrez changer votre cliquez sur() pour un événement en direct() à la place ...

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

Voici une démonstration rapide basé sur votre code link text

Pour plus d'informations sur en direct() consultez http://api.jquery.com/live/