2012-08-03 4 views
1

Chaque fois que je clique sur le bouton '#print' pour la deuxième fois, la valeur du premier clic est imprimée avant la valeur réelle. Par exemple: Je clique sur le bouton pour la première fois. La boîte d'alerte affiche la valeur correcte ('test1').La variable conserve l'ancienne valeur

Je clique sur le bouton pour la deuxième fois. La boîte d'alerte imprime la première valeur ('test1'), puis j'appuie sur OK, et juste après, la boîte d'alerte imprime la deuxième valeur ('test2').

Des idées de ce que je fais mal?

$(".ipdate").focus(function() { 

    /*$('.dateBox').hide();*/ 

    var tit = $(this).attr('id'); 
    /*var full = '#'+tit+'B';*/ 

    $('#dateBox').show(); 

    $('#print').on('click', function(){ 

     var bottle = $('.sday').val()+' '+$('.smon').val()+' '+$('.syear').val(); 
     $('#'+tit).val(bottle); 
     alert(tit); 

    }); 

    $('#close').on('click',function() { 

     $('#dateBox').hide(); 

    });  
}); 

Répondre

5

Vous enregistrez plusieurs événements et c'est pourquoi vous voyez plusieurs actions! As-tu vu ça? :) J'ai eu une situation similaire et il m'a fallu un certain temps pour les choisir. Vous pouvez vous désinscrire pour l'ancien événement avant d'émettre le nouveau.

$(".ipdate").focus(function() { 

     /*$('.dateBox').hide();*/ 

     var tit = $(this).attr('id'); 
     /*var full = '#'+tit+'B';*/ 

     $('#dateBox').show(); 

     $('#print').off('click'); 
     $('#print').on('click', function(){ 

      var bottle = $('.sday').val()+' '+$('.smon').val()+' '+$('.syear').val(); 
      $('#'+tit).val(bottle); 
      alert(tit); 

     }); 

     $('#close').off('click'); 
     $('#close').on('click',function() { 

      $('#dateBox').hide(); 

     }); 



    }); 

Ceci devrait résoudre votre problème. L'utilisation de off annulera l'enregistrement des anciens événements.

+0

Oh, génial, merci beaucoup :) Je probablement jamais comprendre que sur: D – John

+2

@John - Quand cela est arrivé à moi, il a fallu beaucoup de temps pour comprendre lol, il a été douloureux :) –

+0

Hehe, oui , je peux imaginer: D – John

Questions connexes