销毁 jScrollPane

发布于 2024-12-07 17:24:53 字数 192 浏览 0 评论 0原文

如何使用 destroy 删除 jScrollPane。请您为以下代码举一个简单的例子:

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

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

How to remove jScrollPane using destroy. Please can you give a simple example for the following code:

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

轮廓§ 2024-12-14 17:24:53

销毁 jscrollpane (v2) 的实例:

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

To destroy an instance of jscrollpane (v2):

var element = $('.div1').jScrollPane({});
var api = element.data('jsp');
api.destroy();
爱情眠于流年 2024-12-14 17:24:53

旧的 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 恢复到旧样式,使其像 jScrollPane 之前一样。

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

The old jScrollPaneRemove() function looked something like this:

$.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();
    }
  });
}

As you can see this removes the css, or rather sets it to nothing, and resets the style tag to the original styles.
The problem is that originalStyleTag is also removed, but it used to look something like this:

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

So it's basicly a way to store the old styles before jScrollPane is activated and reapplying them when jScrollPane is removed.

A lot has changed in the new version, and I don't know if this method still works, but it looks like the way to do it is to store the old styles before running jScrollPane, zero out any css set by jScrollPane, and set the css bak to the old styles to make it like it was before jScrollPane.

Sounds like a lot to do, and I would seriously consider trying jQuery's remove, empty, detach or anything else on the different containers assocciated with jScrollPane, and if all else fails try to make the above function work in your script. All you really need to do is get the old styles in a data array before running jScrollpane, and then see if the old remove function still works.

放手` 2024-12-14 17:24:53

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

You need to call jScrollPaneRemove() on the container i.e. $('.myownscrollpane').jScrollPaneRemove();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文