jjrollpane在ajax调用后不会重新初始化

时间:2012-08-10 05:35:59

标签: javascript jquery jquery-plugins jscrollpane jquery-jscrollpane

我一直在试验jscrollpane

我正在尝试将一些ajax内容添加到窗格并让它呈现内容,但重新初始化因某种原因失败。

我相信我正在按照here解释的内容,但也许我遇到了用于处理我的json数据的vk template的问题。

我已经把这个div放在页面上了。

 <div id="INTERNAL-line_item_detail" class="fl scroll-pane">
 </div>

当事情开始时它是空的,但如果我放入一些lorem ipsum,我可以看到jscrollpane正常工作,至少在开始时。

然后我发出这个ajax请求来获取一个json对象 然后使用vktemplate将其放入html。

$.ajax({

    type: "POST",
    url: "queries/INTERNAL_get_order_info.php",
    data: "num=" + num,
    dataType: "json",

    success: function (data) {

        //some of this is not exactly the way it is SO question I referenced
        //I've been moving things around quite experimentally
        api = $("#INTERNAL-line_item_detail").data('jsp');
        $("#INTERNAL-line_item_detail").empty();
        $('#INTERNAL-line_item_detail').vkTemplate('templates/get_line_items_template.tmpl?<?=time()?>', data, function () {

         api.reinitialise();
    });
}

});

滚动窗格的CSS ......没什么特别的。

.scroll-pane {
    width: 350px;
    height: 200px;
    overflow: auto;
    margin:15px 30px 15px 30px;
    background-color:#fff;
}

但每当我查看chrome检查器中的滚动窗格时,它都会添加属性overflow:hidden(尽管我无法从中找出)。我并不认为它真的很重要,因为当我将其关闭或更改为scroll时,我只能在顶部和底部看到普通的mac滚动条。

有什么想法吗?非常感谢!

2 个答案:

答案 0 :(得分:2)

尝试在模板引擎的回调函数中记录api的值,以了解它是否已定义。 另外我认为最好通过回忆jScollPane这样的元素来重新初始化:

$('#INTERNAL-line_item_detail').jScrollPane({/*your jsp config*/});

它将保持滚动位置并且将是透明的。 祝你好运!

答案 1 :(得分:-1)

api设置为等于具有类scroll-pane

的容器div

并在模板

中使用它
function reinitializeJspane(divId, templateUrl, data) {
    api = $('#' + divId).data('jsp');
    $(api.getContentPane()).vkTemplate(templateUrl + "?", data, function () {
        api.reinitialise();
    });
}

谢谢!