1

我运行此代码将 xml 数据加载到表中,但是在加载数据后,我似乎无法重新加载滚动条。没有任何效果,甚至无法$('.scroll-pane').jScrollPane();在 Firebug 中手动运行。

这是代码:

$("#MenuList").html('<div class=\"menu-activity\">Please Wait</div>');
$.blockUI();

           $.get('venuesxml.php', function (data) {

                $('#MenuList').html("<div class=\"menu-activity\">Showing activity for 13.10.2012</div>");

                $(data).find('marker').each(function () {

                    $('#MenuList').append("<div class='menu-item-red'><div class='typename'>Event</div><div class='eventname'>" +

                    $(this).attr('id') + "</div><div class='venuename'>" +

                    $(this).attr('venue_type') + "</div></div>");

                });

            });

            $.unblockUI();
            $('.scroll-pane').jScrollPane();

这是一个现场演示点击“搜索”执行代码。

4

3 回答 3

1

通常,必须在 JSP 上调用 reinitialise() 以使其动态识别放置在其中的任何数据……例如在 AJAX 调用之后。看起来这里可能存在时间问题..

 var api = $('.scroll-pane').data('jsp');
 api.reinitialise();

或者你可以使用 autoReinitialise,它只是一个调用 reinit 的 JS 计时器。我更喜欢在适当的时候使用手动方法。

你会想通读一遍。 http://jscrollpane.kelvinluck.com/api.html

于 2012-11-18T19:42:18.017 回答
1

添加动态内容后,您需要重新初始化插件。

试试这个:

 $(function()
{
    // Initialise the scrollpanes
    $('.scroll-pane').jScrollPane();

    // Add some content to #pane2
    var pane2api = $('#pane2').data('jsp');
    var originalContent = pane2api.getContentPane().html();
    pane2api.getContentPane().html(originalContent + originalContent + originalContent);

    // Reinitialise the #pane2 scrollpane
    pane2api.reinitialise();
});

更多信息可以在这里找到

于 2012-11-18T19:42:34.180 回答
0

你可以尝试这样做......

    //Should it (the #parentContainer) have had a "scroll-pane" class

        $('#parentContainer').jScrollPane()

    $.each(data, function(i, value) {

//Detach scrolling capabilities
        $('#parentContainer').jScrollPaneRemove();

        $('<div/>',{
        class:'anyClass',
        id:'anyId'
        })
        .appendTo(#childContainer);

//Return back Scrolling capabilities to the parent container    
        $('#parentContainer').jScrollPane();            


        ///-> Loop Ends
                });

这样,每次循环时滚动功能都会更新......因此,滚动条的长度将根据子容器中数据存储的大小而增长或缩小。

希望有帮助....

埃贝斯特

于 2013-05-07T08:57:12.377 回答