2010-11-14 3 views
1

У меня проблема. Событие click, вызывающее форму greybox, прерывается после обновления div. Как переподчинить функцию обновленному контенту, который включает ссылки, которые будут перезапускать greybox? Я предполагаю, что мне нужно повторно инициализировать функции после события click. Я новичок, поэтому за вашу помощь.Функция Jquery Rebind после вызова 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(); 


} 

ответ

5

«Нажми» связывания и другие привязки в JQuery связывать только один раз при вызове к определенному DOM элементу. Для того, чтобы убедиться, что динамически загруженный контент также связанный, использовать «живой» метод:

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

Спасибо Я вставил это и теперь он не работает вообще. Mike

0

Ok Я добавил .live метод, в настоящее время, когда элемент refeshes, когда я нажимаю на кнопку EDIT, запускающего greybox , только серые чрезмерно загружаются.

<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> 
Смежные вопросы