使用带有ajax的tinyscrollbar

时间:2012-10-09 20:25:38

标签: jquery ajax

我正在尝试使用带有ajax加载内容的tinyscrollbar(http://baijs.nl/tinyscrollbar/)。 我的原始页面有这样的div:

<div id="content-wrap" style="display:none;">        
</div>

我使用此函数进行ajax调用:

$('#nav li a').click(function(){
    var toLoad = $(this).attr('href')+' #content';
    $('#content-wrap').load(toLoad,showNewContent);
    function showNewContent() {
        $('#content-wrap').fadeIn(1000).css("display", "block");
        $('#scrollbar1').tinyscrollbar();
        $("#scrollbar1").tinyscrollbar_update();
    }

被叫内容如下所示:

<div id="content">
    <div id="scrollbar1">
    <div class="scrollbar"><div class="track"><div class="thumb"><div class="end"></div></div></div></div>
    <div class="viewport">
    <div class="overview">
        //some content
        //some more content
    </div></div></div>  
</div>

但它根本不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:2)

我首先创建了一个名为content.htm的文件,如下所示

<html>
<body>
<div id="content">
    <div id="scrollbar1">
    <div class="scrollbar"><div class="track"><div class="thumb"><div class="end"></div></div></div></div>
    <div class="viewport">
    <div class="overview">
        <p>//some content</p>
        <p>//some content</p>
        <p>//some content</p>
        <p>//some content</p>
        <p>//some content</p>
        <p>//some content</p>
    </div></div></div>  
</div>
</body>
</html>

然后我创建了另一个名为test.htm的文件,就像这个

一样
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="http://baijs.nl/tinyscrollbar/js/jquery.tinyscrollbar.js"></script>
<style>
#scrollbar1 { width: 520px; clear: both; margin: 20px 0 10px; }
#scrollbar1 .viewport { width: 500px; height: 200px; overflow: hidden; position: relative; }
#scrollbar1 .overview { list-style: none; position: absolute; left: 0; top: 0; }
#scrollbar1 .thumb .end,
#scrollbar1 .thumb { background-color: #003D5D; }
#scrollbar1 .scrollbar { position: relative; float: right; width: 15px; }
#scrollbar1 .track { background-color: #D8EEFD; height: 100%; width:13px; position: relative; padding: 0 1px; }
#scrollbar1 .thumb { height: 20px; width: 13px; cursor: pointer; overflow: hidden; position: absolute; top: 0; }
#scrollbar1 .thumb .end { overflow: hidden; height: 5px; width: 13px; }
#scrollbar1 .disable{ display: none; }
.noSelect { user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; }


</style>
</head>
<body>
<div id="content-wrap" style="display:none;">        
</div>
<input type="button" value="Load Content" id="btnLoad"/>

<script language="javascript">
    $('#btnLoad').click(function(){
        var toLoad = "http://localhost/tinyscrollbar/Content.htm #content";
        $('#content-wrap').load(toLoad,function(){
            $('#content-wrap').fadeIn(1000).css("display", "block");
            $('#scrollbar1').tinyscrollbar();
            $("#scrollbar1").tinyscrollbar_update();
        });
    });
</script>
</body>
</html>

它对我来说很好。

我认为你应该逐步缩小你的问题范围。首先检查内容div是否正确加载内容,然后检查tinyscrollbar。我假设你在以下代码块中做错了什么

$('#nav li a').click(function(){
    var toLoad = $(this).attr('href')+' #content';
    $('#content-wrap').load(toLoad,showNewContent);