0

我一直在试验jscrollpane

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

我相信我正在遵循这里解释的内容,但也许我在处理我的 json 数据时使用的vk 模板有问题。

我有这个 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,我只会在顶部和底部看到 normal-mac-scrollbars。

有任何想法吗?非常感谢!

4

2 回答 2

2

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

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

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

于 2012-08-10T08:26:19.483 回答
-1

设置api等于具有类scroll-paneclass的容器 div

并在模板中使用它

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

谢谢!

于 2012-08-10T15:55:20.303 回答