2013-10-09 20 views
1

我一直在努力解決這個問題幾個星期,並且我研究了幾十個帖子在這個站點和其他站點上。我有一個非常基本的問題。我有一個DIV標籤#scrollarea,它是在飛行中創建的,在一個Web應用程序中幾次摧毀並重新創建。我的問題是niceScroll功能只能使用一次。第二次嘗試後,我不再控制jQuery niceScroll不能在動態DIV上工作

我已經嘗試了幾種技術,包括resize()方法,但沒有任何工作。我還安裝了一個調節器,以確保它只安裝一次,然後再安裝一個resize()'。再次,沒有任何工作。

鑑於我的代碼被鎖在安全的門後面,並且它是通過腳本觸發的,所以在這裏演示非常困難。

有沒有人有建議如何做到這一點?回顧:

  • 頁面加載,沒有#scrollarea存在
  • 腳本火災,並#scrollarea安裝到DIV
  • niceScroll連接到#scrollarea一次,再完美的作品
  • 腳本火災,#scrollarea被替換爲NEW scrollarea
  • 不管我使用什麼技術,滾動條不再工作

方法嘗試:

  • 每個新#scrollarea到達
  • 安裝niceScroll一次,永無
  • 安裝niceScroll一次,然後發出getNiceScroll().resize()
  • 嘗試的.mouseover()時間安裝niceScroll - >.resize()技術

所有技術都無法在第二次使用時渲染可用的滾動條。

+0

請張貼一些代碼,並鏈接到插件 – LeGEC

+0

我有它現在維護,但它失去了它的視覺配置。 –

回答

6

更新:發現新功能!

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

調用此函數來更新niceScroll

setScroll(".classWithNiceScroll"); 

----- 舊方法 -----

使用,而不是該調整

$("idORclass").getNiceScroll().remove() 
$("idORclass").nicescroll(); 
+0

upvote for old method,'updateScrollBar()'不是函數錯誤。版本3.5.1 – CularBytes

0

腳本再次閃光,#scrollarea被新scrollarea

代替你是什麼意思?是從DOM中刪除你的#scrollarea,並插入一個新的?或者您是否已更換內容,例如$('#scrollarea').html(blabla)

你試過$(window).trigger('resize')? nicescroll似乎在觀察調整大小的事件,但不是爲了更改DOM。

+0

沒錯。我有一個版本現在使用resize()但是它完全失去了我的配置參數。它會變成一個帶有排水溝的白色條紋等。我的配置是默認設置,寬度略有增加。我想我會拋棄動態技術,並確保#div始終存在。 –

0

我有類似的問題,使用空的div,我可以添加動態內容,當某些事件被觸發,但是,添加內容後,滾動條不會出現。我通過預先填充滾動條div來創建另一個空白div,其高度超出了我在滾動條上的div。

相關問題