2010-11-14 136 views
1

我有一个问题。召唤灰箱形式的点击事件在div被刷新后被破坏。如何将功能重新绑定到刷新的内容,其中包括将重新启动灰箱的链接?我假设我必须在点击事件后重新初始化函数。我是一个新手,所以希望得到你的帮助。Ajax调用后的Jquery Rebind函数

<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中的'click'绑定和其他绑定仅在被调用到特定DOM元素时绑定一次。为了确保动态加载的内容也必然,用“活”的方法:

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

谢谢我插入这个,现在它根本不工作。 Mike 2010-11-14 18:29:18

0

好,我已经添加了.live方法,现在当元素refeshes,当我点击编辑按钮触发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>