2011-03-30 70 views
0

我得到了这段代码来动态加载HTML,但我得到了一个问题,导致我的插件在index.html上工作正常,但是当你改变页面时,它不再工作..任何人都可以帮助我出去了?日ThnxJquery插件将无法在动态加载的HTML中工作

$(函数(){

var newHash  = "", 
    $mainContent = $("#main-content"), 
    $pageWrap = $("#page-wrap"), 
    baseHeight = 0, 
    $el; 


$("nav").delegate("a", "click", function() { 
    window.location.hash = $(this).attr("href"); 
    return false; 
}); 

$(window).bind('hashchange', function(){ 

    newHash = window.location.hash.substring(1); 

    if (newHash) { 
     $mainContent 
      .find("#guts") 
      .fadeOut(200, function() { 
       $mainContent.hide().load(newHash + " #guts", function() { 
        $mainContent.fadeIn(200, function() { 
         $pageWrap.animate({ 
          height: baseHeight + $mainContent.height() + "px" 
         }); 
        }); 
        $("nav a").removeClass("current"); 
        $("nav a[href="+newHash+"]").addClass("current"); 
       }); 
      }); 


    }; 

}); 

$(window).trigger('hashchange'); 

});

+0

什么停止工作? – drewish 2011-03-30 01:01:45

+0

'load(newHash +“#guts''?为什么#guts在那里? – drewish 2011-03-30 01:04:25

+0

您的DOM示例也会有所帮助。 – drewish 2011-03-30 01:05:26

回答

1

我认为你需要的是.live()如果你想附加jQuery动态创建标记。

http://api.jquery.com/live/

+0

是啊,这听起来像解决方案,但当我尝试和替换.bind()与.live()没有任何工作了.. – Jeroen 2011-03-30 13:38:43