Jquery jscrollpane ajax内容未在窗格对象中加载

时间:2012-01-06 20:43:38

标签: jquery jscrollpane

我一直在与jScrollPane争斗 - v2.0.0beta11 - 2011-07-04和Jquery 1.7.1。

我正在使用ajax调用来填充包含内容的div。 在旧的jscrollpane中,只需通过ajax加载内容,然后在成功时将jscollpane方法应用于div。现在据我了解,你需要通过调用div上的方法初始化对象,然后将内容加载到窗格对象而不是div,因为它已被jscrollpane更改。

我这样做,但内容未加载。

//initialise jscrollpane on page load

   $(document).ready(function() { 
   api = $('#functionsWindow').jScrollPane().data('jsp');
   }

   //ajax script
   function ajaxFromLink(page,querystring,target){

   theTarget = document.getElementById(target);
   $.ajax({
   type: "POST",
   url: page,
   data: querystring,   
   success: function(msg){  
        if (theTarget != ''){
            if(theTarget.id == 'functionsWindow'){
                api.getContentPane().html(msg);
                api.reinitialise(); 
                console.log('api method: ' + msg);
            }else{
                console.log('normal method: ' + msg);
                $(theTarget).html(msg);
            }
        }
    }

    }

这一行api.getContentPane()。html(msg);没有插入内容。我可以确认内容是从服务器传回来的。

如果我没有初始化jscrollpane onLoad并在第一个ajax调用中执行,则滚动条将起作用。然而,随后的ajax帖子将无效。我不知道我错过了什么。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在全局范围内定义api变量,它应该可以正常工作。试试这个

    var api;

    $(document).ready(function() { 
       api = $('#functionsWindow').jScrollPane().data('jsp');
    });

    //ajax script
    function ajaxFromLink(page,querystring,target){

       theTarget = document.getElementById(target);
       $.ajax({
       type: "POST",
       url: page,
       data: querystring,   
       success: function(msg){  
            if (theTarget != ''){
                if(theTarget.id == 'functionsWindow'){
                    api.getContentPane().html(msg);
                    api.reinitialise(); 
                    console.log('api method: ' + msg);
                }else{
                    console.log('normal method: ' + msg);
                    $(theTarget).html(msg);
                }
            }
        }

       });
     }