1

几个星期以来,我一直在为这个问题苦苦挣扎,我研究了这个网站和其他网站上的几十篇文章。我有一个非常基本的问题。我有一个 DIV 标签#scrollarea,它是在一个 Web 应用程序中动态创建、销毁和重新创建的。我的问题是 niceScroll 功能只能使用一次。第二次尝试后,我不再获得控件

我尝试了几种技术,包括该resize()方法,但没有任何效果。我还安装了一个调节器,确保它只安装一次,然后再安装resize()。同样,没有任何效果。

鉴于我的代码被锁在安全门后,并且它是通过脚本触发的,因此在这里演示是一件非常困难的事情。

有没有人建议如何做到这一点?回顾:

  • 页面加载,不#scrollarea存在
  • 脚本触发,并且#scrollarea被安装到DIV
  • niceScroll连接到#scrollareaONCE 并且工作完美
  • 脚本再次触发,#scrollarea被新的滚动区域取代
  • 无论我使用什么技术,滚动条都不再起作用

尝试的方法:

  • niceScroll每次新品#scrollarea到货时安装
  • 安装niceScroll一次,再也不会
  • 安装niceScrollONCE,然后发出getNiceScroll().resize()
  • 尝试了.mouseover()->.resize()技术

所有技术都无法在第二次使用时呈现可用的滚动条。

4

3 回答 3

7

更新:发现新功能!

 var setScroll = function(i) {
        if($(i).length>0)
        $(i).niceScroll().updateScrollBar();
} 

调用这个函数来更新 niceScroll

setScroll(".classWithNiceScroll");

-----旧方法-----

使用它而不是调整大小

$("idORclass").getNiceScroll().remove()
$("idORclass").nicescroll();
于 2013-12-16T12:35:16.390 回答
0

脚本再次触发,#scrollarea 被新滚动区域替换

你是什​​么意思 ?您是否#scrollarea从 DOM 中删除,并插入了一个新的?或者你有没有替换它的内容,比如$('#scrollarea').html( blabla )

你试过$(window).trigger('resize')吗?nicescroll 似乎监视调整大小事件,但不监视 DOM 更改。

于 2013-10-09T09:48:37.043 回答
0

我在使用空 div 时遇到了类似的问题,我可以在触发某些事件时添加动态内容,但是,在添加内容时,滚动条不会出现。我通过使用另一个空 div 预先填充滚动条 div 来使其工作,该 div 的高度溢出了我有滚动条的 div。

于 2015-04-28T18:11:12.333 回答