Domanda

Per qualche strana ragione sto ricevendo due volte la mia casella di conferma. ecco il mio codice:

$(".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;
    }


});
È stato utile?

Soluzione

Carichi dinamicamente contenuti (tramite ajax)? È possibile che l'evento click sia associato allo stesso elemento due volte con conseguente doppia conferma.

Altri suggerimenti

prova questo:

prova questo:

<*>blockDelete = false; $(".DeleteComment").live("click", function(event){ event.preventDefault(); //event.stopPropagation(); // it is not necessary if (!

prova questo:

<*>blockDelete) {

prova questo:

<*>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 "

prova questo:

<*>blockDelete" once again ajax response } } });

Succede quando associamo un evento agli elementi che sono caricati dinamicamente tramite AJAX

Ad esempio, stiamo caricando del contenuto html dinamico (ad es. contenuto dinamico in modale) facendo clic sul pulsante del modulo modifica ,

E in quel contenuto se abbiamo evento clic associato su un pulsante ad es. elimina , quindi ogni volta che facciamo clic sul pulsante del modulo modifica , lega l'evento click a elimina pulsante ogni volta,

E se hai impostato la casella di conferma sull'evento clic del pulsante elimina , ti chiederà quante volte è stato associato a quell'evento clic significa qui se abbiamo fatto clic sul pulsante modifica 5 volte, quindi verrà richiesta la conferma 5 volte.

Quindi, per risolvere il problema puoi separare l'evento ogni volta prima di associare l'evento all'elemento caricato dinamicamente come segue:

$(document).off('click', '.DeleteComment').on('click', '.DeleteComment', function () {
   if (confirm('Are you sure you want to permanently delete this comment?')){
      //Delete process
      return true;
   }
   return false;
}

O Un altro modo per risolvere questo problema è aggiungere il tuo script nella pagina principale, significa che la pagina statica non è caricata in modo dinamico .

Hai provato a rimuovere quel var confirm non utilizzato?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top