javascript在Dynamic ajax内容中不起作用

时间:2011-09-29 09:35:58

标签: ajax jquery

我正在尝试使用 http://net.tutsplus.com/tutorials/javascript-ajax/how-to-load-in-and-animate-content-with-jquery/ 并且我自己修改了它,我添加了fancybox和tinyscrollbar它在第一个工作,然而,在我在一些页面之间切换它不再工作。我试着在教程页面的评论中找到我的答案,我使用.live()但它接缝它不起作用我无法找出解决方案, 听到我的代码:

$(document).ready(function() {     
    var hash = window.location.hash.substr(1);
    var href = $('#nav li a').each(function(){
        var href = $(this).attr('href');
        if(hash==href.substr(0,href.length-5)){
            var toLoad = hash+'.html #content';
            $('#content').load(toLoad)
        }                                           
    });
    $('#nav li a').live ('click', function(){                             
        var toLoad = $(this).attr('href')+' #content';
        $('#content').slideToggle('fast',loadContent);
        $('#load').remove();
        $('#wrapper').append('<span id="load">LOADING...</span>');
        $('#load').fadeIn(500);
        window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
        function loadContent() {
            $('#content').load(toLoad,'',showNewContent())
        }
        function showNewContent() {
            $('#content').show(500,hideLoader());
        }
        function hideLoader() {
            $('#load').fadeOut(500);
        }
        return false;   
    });


$("#scrollbar1").tinyscrollbar();           
$("a#example1").fancybox();

});
谢谢你, 安德鲁

1 个答案:

答案 0 :(得分:0)

当没有完整的页面可供查看时,很难看到您尝试做什么。但我认为问题在于,当您加载新内容时,您应该相应地更新滚动条和fancybox。

对于tinyscrollbar,您可以使用更新方法。

您可以在tinyscrollbar网站上看到如何使用它。

您可以尝试将其置于加载事件的成功回调中。

$( “#scrollbar1”)tinyscrollbar_update();

您可以尝试将该规则放在hideLoader函数或showNewContent函数的末尾。