2009-10-27 4 views
1

Je ne comprends pas pourquoi cet appel confirm() se déclenche même si je tape "non". Pouvez-vous me dire ce que je fais mal?livequery - confirm()

$('.deleteButton').livequery('click',function(){ 
     if(confirm('Are you sure?')){ 
      return true; 
     }else 
     { 
      return false; 
     } 
     return false; 
    }); 

Le balisage HTML:

<a class="smallbutton deleteButton" href="users.php?todo=delete&id=32">delete</a> 

J'ai vérifié et il ne retourne faux, mais la page redirigeait toujours à la valeur cliqué sur un href. Normalement, si je retourne faux, il ne devrait pas, non?

+2

pouvez-vous inclure le code HTML? –

+0

La balise anchor et .deleteButton sont-elles le même élément? –

+0

vient de mettre à jour la question avec le balisage html. @jstayton: yes – pixeline

Répondre

0

Je me excuse: il se trouve que j'attachait un autre comportement à tous les points d'ancrage à l'intérieur du conteneur de contenu principal. J'ai ajouté une clause d'exclusion pour deleteButton et ça fonctionne bien maintenant.

Voici ma dernière, le travail, le code:

var $tabs= $("#tabs").tabs({ 
     fx: { 
      opacity: 'toggle' 
     }, 
     load: function(event, ui) { 

      $('a', ui.panel).livequery('click',function() { 

       // we need to exclude the listNav buttons AND deleteButton buttons from this behavior 

       if($(this).parent().is(':not(".ln-letters")') && $(this).is(':not(".deleteButton")')){ 

        $(ui.panel).load(this.href); 
        return false; 
       } 
      }); 
     } 
    }); 

Et le comportement du bouton de suppression fonctionne avec un simple:

$('.deleteButton').live('click',function(e){ 
    return confirm('Are you sure?'); 
}); 
1
<a id="myId_1" href="#" class="deleteButton">delete</a> 

$('.deleteButton').livequery('click',function(e){ 
     e.stopPropagation(); 
     if(confirm('Are you sure?')){ 
      functionForDelete($(this).attr("id").split("_")[1]); 
     } 
}); 

// OR ir you like goto href 

<a id="myId1" href="url/delete/id.php?1" class="deleteButton">delete</a> 
$('.deleteButton').livequery('click',function(e){ 
     e.stopPropagation(); 
     if(confirm('Are you sure?')){ 
      window.location=$(this).attr("href"); 
     } 
}); 
0

Modifiez livequery() en live(). jQuery prend en charge la même fonctionnalité. Juste testé en FF et il a travaillé avec en direct() mais ne m'a même donné une invite avec livequery()

0

Essayez ceci:

$('.deleteButton').livequery('click',function(e){ 
    if (confirm('Are you sure?')) { 
     return true; 
    } else { 
     if (e.preventDefault) { 
      e.preventDefault(); 
     } else { 
      e.returnValue = false; 
     } 
     return false; 
    } 
}); 
+0

Je pense que vous avez besoin de la fonction (e). –

+0

J'ai essayé votre code, mais pas de chance. Je suis perplexe. – pixeline

+0

Oh désolé, oui: livequery ('clic', fonction (e) { –

Questions connexes