销毁jScrollPane

时间:2011-10-01 17:27:47

标签: jquery jscrollpane

如何使用destroy删除jScrollPane。请举例说明以下代码:

$(document).ready(function() {
    $(".div1").jScrollPane();
});

<div class="div1">Some text...</div>

3 个答案:

答案 0 :(得分:12)

要销毁jscrollpane(v2)的实例:

var element = $('.div1').jScrollPane({});
var api = element.data('jsp');
api.destroy();

答案 1 :(得分:1)

旧的jScrollPaneRemove()函数看起来像这样:

$.fn.jScrollPaneRemove = function() {
  $(this).each(function() {
    $this = $(this);
    var $c = $this.parent();
    if ($c.is('.jScrollPaneContainer')) {
        $this.css(
            {
                'top':'',
                'height':'',
                'width':'',
                'padding':'',
                'overflow':'',
                'position':''
            }
        );
        $this.attr('style', $this.data('originalStyleTag'));
        $c.after($this).remove();
    }
  });
}

正如您所看到的,这将删除css,或者将其设置为空,并将样式标记重置为原始样式。 问题是originalStyleTag也被删除了,但它看起来像这样:

$this.data('originalStyleTag', $this.attr('style'));

所以它基本上是一种在激活jScrollPane之前存储旧样式的方法,并在删除jScrollPane时重新应用它们。

新版本中有很多变化,我不知道这个方法是否仍然有效,但看起来这样做的方法是在运行jScrollPane之前存储旧样式,将jScrollPane设置的任何css置零,并将css bak设置为旧样式,使其像jScrollPane之前一样。

听起来很多事情,我会认真考虑尝试jQuery的删除,清空,分离或与jScrollPane关联的不同容器上的任何其他内容,如果所有其他方法都失败,请尝试使上述功能在您的脚本中运行。您真正需要做的就是在运行jScrollpane之前获取数据数组中的旧样式,然后查看旧的remove函数是否仍然有效。

答案 2 :(得分:0)

你需要在容器上调用jScrollPaneRemove(),即$('。myownscrollpane')。jScrollPaneRemove();