Question

Je le code suivant que le simple utilise une boîte de dialogue modale jquery ui « confirmer » tout clic sur un lien. Si elles cliquez sur OK, puis les envoie au lien d'origine. Il fonctionne très bien, donc ne prenez pas la peine de le lire dans trop de détails =)

    $('.confirm').live('click', function(e) {
  e.preventDefault();
  var theHref = $(this).attr('href');
  var confirmText = 'Are you sure?';
  if ($(this).attr('confirm')) {
   confirmText = $(this).attr('confirm');
  }
  confirmDialog.html(confirmText);
  confirmDialog.dialog({
   buttons: {
    'OK': function() {
     window.location = theHref;
     $(this).dialog('close');
    },
    Cancel: function() {
     $(this).dialog('close');
     return false;
    }
   }
  });
  confirmDialog.dialog('open');
  return false;
 });

Alors, j'ai un tas d'autres fonctionnalités arbitraires. Comme, disons ceci:

    $('a.reset').live('click', function(e) {
  e.preventDefault();
  $(this).parents('form')[0].reset();
 });

C'est juste un lien qui remet à zéro une forme (comme un type d'entrée = remise à zéro). Cette fonctionnalité fonctionne aussi très bien. S'il vous plaît noter que ceci est juste un exemple arbitraire. J'ai beaucoup de différents extraits de fonctionnalité JS que je cours se connecter via.

Le problème que je rencontrais empile ces deux. Dans cet exemple, certains liens reset je pourrais avoir besoin des confirmations, certains je ne pourrais pas. Comme ceci:

<a href="" class="reset confirm">Reset on confirmation</a>
<a href="" class="reset">Reset without confirmation</a>

Le problème bien sûr, est que le premier exemple ne se soucie pas de la confirmer - il va juste avant et remet à zéro. Est-il possible que je peux continuer à garder ces bouts de code distinct et modulaire (comme dans l'exemple HTML), tout en même temps faire une personne à charge sur la sortie de l'autre?

Je l'espère, il est clair que je suis en train de réaliser.

Merci d'avance pour toute aide. affichage première fois ici donc être gentil =)

Était-ce utile?

La solution

Je ne sais pas si cela fonctionnera, mais essayez de créer les gestionnaires .Live dans l'ordre inverse. Je pense qu'ils pourraient se déclencher à partir du dernier joint à la première annexe.

Autres conseils

bien une approche très simple devine mal de ce que je compris que vous voulez atteindre serait de vérifier si l'élément a la classe de confirmation avant attachée à vous empêchez tout comportement par défaut et ce pas

Je pense que vous pouvez probablement démerder en attachant simplement le code à la classe de confirmation avant la classe remise à zéro. Il suffit de mettre un peu plus haut dans votre document.ready ou partout où vous spécifiez les événements.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top