2009-11-26 3 views
4

Pour une raison étrange, je reçois ma boîte de confirmation à venir deux fois. voici mon code:jQuery/Javascript confirme venir deux fois

$(".DeleteComment").live("click", function(){ 

    var CommentID = $(this).attr("rel"); 
    var confirm 

    if (!confirm('Are you sure you want to permanently delete this comment?')){ 

     return false; 

    }else{ 
     $(this).html("loading").css("color", "#999"); 
     //AJAX HERE 
     return false; 
    } 


}); 

Répondre

13

Chargez-vous du contenu dynamiquement (via ajax)? Il se peut que l'événement click soit lié au même élément deux fois, ce qui entraîne la double confirmation.

0

Avez-vous essayé la suppression de cette non-utilisé var confirm?

+0

oups, a essayé de le retirer, pas de chance. – Adam

4

essayez ceci:

$_blockDelete = false; 

$(".DeleteComment").live("click", function(event){ 

    event.preventDefault(); 
    //event.stopPropagation(); // it is not necessary 

    if (!$_blockDelete) 
    { 
     $_blockDelete =true; 
     var rconfirm = confirm('Are you sure you want to permanently delete this comment?'); 
     if (rconfirm) 
     { 
      $(this).html("loading").css("color", "#999"); 
      var CommentID = $(this).attr("rel"); 
      //AJAX HERE 
      //return the value "false" the variable "$_blockDelete" once again ajax response 

     } 
    } 

}); 
+0

de jQuery doc on stopPropagation() "Notez que cela n'empêchera pas les autres gestionnaires du même élément de s'exécuter". Si "click" est lié deux fois, la boîte de dialogue de confirmation apparaîtra deux fois. –

+0

ok, je suis d'accord avec vous que dans ce cas ne serait pas utile. préférable de laisser l'exemple modifier le script. –

+0

Le retour est-il faux? – billrichards