2010-11-14 6 views
1

J'ai un problème. L'événement click qui invoque une forme de boîte grise est interrompu après l'actualisation d'une div. Comment redéfinir la fonction sur le contenu actualisé, qui inclut les liens qui vont relancer la boîte grise? Je suppose que je dois réinitialiser les fonctions après l'événement de clic. Je suis un débutant donc pour votre aide.Fonction Jquery Rebind après l'appel Ajax

<script type="text/javascript" src="js/jquery-1.4.3.min.js"></script> 
<script type="text/javascript" src="js/greybox.js"></script> 
<script type="text/javascript"> 
     var GB_ANIMATION = true; 
     $(document).ready(function(){ 
     $("a.greybox").click(function(){ 
      var t = this.title || $(this).text() || this.href; 
      GB_show(t,this.href,470,600); 
      return false; 
     }); 
     }); 

</script> 

<script type="text/javascript"> 
    function update(){ 
     jQuery("#showdata").load("maincontentdiv.php<?php echo $passme;?>"); 
     } 

function GB_hide2() { 
    $("#GB_window,#GB_overlay").hide(); 
    $("#GB_window").remove(); 
    update(); 


} 

Répondre

5

Le clic de liaison et d'autres liaisons dans jQuery lient une seule fois lorsqu'il est appelé à un élément DOM spécifique. Pour vous assurer que le contenu dynamiquement chargé est également lié, utilisez la méthode « en direct »:

$("a.greybox").live('click',function(){ 
... 
+0

Merci J'ai inséré ceci et maintenant cela ne fonctionne pas du tout. Mike

0

Ok j'ai ajouté la méthode .live, maintenant, quand les refeshes élément, lorsque je clique sur le bouton EDIT qui déclenche la Greybox , seulement le gris surcharge trop.

<script type="text/javascript" src="js/jquery-1.4.3.min.js"></script> 
<script type="text/javascript" src="js/greybox.js"></script> 
<script type="text/javascript"> 
     var GB_ANIMATION = true; 
     $(document).ready(function(){ 
     $("a.greybox").live('click',function(){ 
      var t = this.title || $(this).text() || this.href; 
      GB_show(t,this.href,470,600); 
      return false; 

     }); 
     }); 
</script> 

<script type="text/javascript"> 
    function update(){ 
     jQuery("#showdata").load("maincontentdiv.php<?php echo $passme;?>"); 
     } 

</script> 

<script type="text/javascript"> 
function GB_hide2() { 
    $("#GB_window,#GB_overlay").hide(); 
    $("#GB_window").remove(); 
    update(); 
} 
</script>