【问题标题】:Jquery jscrollpane ajax content not loading in pane objectJquery jscrollpane ajax内容未加载到窗格对象中
【发布时间】:2012-01-07 04:45:21
【问题描述】:

我一直在使用 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 帖子将不起作用。我不知道我错过了什么。感谢您的帮助。

【问题讨论】:

    标签: jquery jscrollpane


    【解决方案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);
                    }
                }
            }
    
           });
         }
    

    【讨论】:

    • 你肯定做错了什么。你在哪里调用 ajaxFromLink?
    • 仍然遇到同样的问题。服务器正在返回正确的数据,但它没有被插入到 div 中。事实上,原始目标 div 中的所有 jscrollpane div 也都丢失了。
    • 我正在从链接按钮调用 ajax。
    • 我是笨蛋,但这可能对某人有所帮助!在某些时候,我有一个 $('functionsWindow').empty();调用时会产生问题。我想应该执行 api.getContentPane().empty();而是。
    猜你喜欢
    • 2013-01-19
    • 2013-08-06
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多