2012-09-12 68 views
0

我想在我的網站上使用nicescroll,除了在一個頁面上有隱藏的div以外,它正在工作。基本上,我有一個鏈接,點擊時會顯示一些之前隱藏在頁面上的內容。問題 - 點擊鏈接並顯示內容溢出,不可見和不可滾動。由於某種原因,Nicescroll不工作。當隱藏div顯示時nicescroll不滾動

兩者都可以在頁面上自行工作 - 也就是說 - 如果我拿出nicescroll代碼並保持顯示/隱藏div代碼,那麼我可以點擊鏈接並且頁面會變得更長,並且會出現一個常規滾動條我可以向下滾動到內容的底部。 相反,如果我取出顯示/隱藏代碼(只是在頁面加載時顯示內容)並保留nicescroll代碼,那麼頁面將作爲長頁面加載,並且nicescroll欄將顯示並工作精細。

我只是不能讓他們一起工作。我認爲它與頁面不需要在第一次加載時可以滾動並且最初調用nicescroll時有關係,因此它只是說「我不需要爲這個頁面工作」然後放棄。所以,我已經試過複製什麼看起來對我像「nicescroll啓動代碼」

<script> 
    $(document).ready(function() {  
    $("#right").niceScroll(); 
    }); 
</script> 

到被點擊的顯示/隱藏鏈接時,希望將「重新啓動」,它被調用的函數而是沒」不管工作。

顯示/隱藏功能如下:

function showHide(shID) { 
    if (document.getElementById(shID)) { 
     if (document.getElementById(shID+'-show').style.display != 'none') { 
      document.getElementById(shID+'-show').style.display = 'none'; 
      document.getElementById(shID).style.display = 'block'; 
     } 
     else { 
      document.getElementById(shID+'-show').style.display = 'inline'; 
      document.getElementById(shID).style.display = 'none'; 
     } 
    } 
} 

與這樣看頁面的實際DIV部分:

<a href="#" id="example-show" class="showLink" onclick="showHide('example');return false;">-Show Stuff</a> 
       <div id="example" class="more"> 
        <p> 
        "Stuff here" 
        </p> 
        <p><a href="#" id="example-hide" class="hideLink" 
        onclick="showHide('example');return false;">-Hide Stuff-</a></p> 
       </div> 

一切都包裹在使用id =「右一個div 「這就是爲什麼nicescroll腳本將它應用於#right(當我沒有顯示/隱藏功能時,它仍可以正常工作)。

任何想法?

+0

也許相關:http://stackoverflow.com/questions/11628793/always-display-nicescroll-rail – mmcrae

回答

0

首先將內聯onclick移至docready。如果nicescroll連接到#right容器,你可以嘗試以下方法:

// cache container: 
var $right = $('#right'); 

// use .on() jquery on container: 
$right.on('click', '.showLink', function(e){ 
e.preventDefault() 
$right.find('#example').show(); 

// resize nicescroll 
$right.getNiceScroll().show().resize(); 

}).on('click', '.hideLink',function(e){ 
e.preventDefault(); 
$right.find('#example').hide(); 

// also hide nicescroll: 
$right.getNiceScroll.hide(); 

}); 
0

我不知道它是正確的解決辦法,但我的div顯示出來後工作正常,我調用方法:

$("#myHiddenDiv").getNiceScroll().onResize(); 
+0

剛剛完成..此方法獲取新的nicescroll基於現有 – ohrlando