Pergunta

Eu tenho o código a seguir que simplesmente usa uma caixa de diálogo Modal da UI do JQuery para "confirmar" qualquer clique em um link. Se eles clicarem em OK, ele os enviará para o link original. Funciona bem, então não se preocupe em lê -lo com muitos detalhes =)

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

Então, eu tenho um monte de outra funcionalidade arbitrária. Tipo, diga isso:

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

Esse é apenas um link que redefine um formulário (como um tipo de entrada = redefinição). Essa funcionalidade também funciona bem. Observe que este é apenas um exemplo arbitrário. Eu tenho muitos trechos diferentes de funcionalidade JS que anexo através de classes.

O problema que estou encontrando está empilhando esses dois. Neste exemplo, alguns links de redefinição que eu posso querer confirmações, outras que eu talvez não. Igual a:

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

O problema, é claro, é que o primeiro exemplo não se importa com a confirmação - ele apenas segue em frente e é redefinido. Existe alguma maneira de continuar mantendo esses bits de código separados e modulares (como no exemplo HTML), enquanto, ao mesmo tempo, tornando um dependente da saída do outro?

Espero que esteja claro o que estou tentando alcançar.

Agradecemos antecipadamente por qualquer assistência. Primeira postagem aqui, então seja bom =)

Foi útil?

Solução

Não sei se isso funcionará, mas tente criar os manipuladores. Live em ordem inversa. Eu acho que eles podem ser acionados pela última vez em anexo.

Outras dicas

Bem, uma abordagem muito simples, eu acho que pelo que eu entendi que você quer alcançar seria verificar se o elemento tem a classe de confirmação anexada a ele antes de impedir qualquer comportamento padrão e o que não

Eu acho que você provavelmente pode resolver isso simplesmente anexando o código à classe Confirmar antes da classe Reset. Basta colocá -lo mais alto no seu documento.ready ou onde quer que você especifique os eventos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top