如何使用destroy删除jScrollPane。请举例说明以下代码:
$(document).ready(function() {
$(".div1").jScrollPane();
});
<div class="div1">Some text...</div>
答案 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();