2012-10-16 54 views
5

Nice Scroll出現問題。它工作正常,但是當我加載AJAX圖像它不起作用。有趣的是,當我調整窗口大小時,打開Firebug或其他任何東西,它就開始工作。NiceScroll在AJAX加載後不起作用

我該怎麼做才能自動做到這一點?

我想:

setTimeout(function(){ 
    $("window").trigger('resize'); 
}, 0); 

的AJAX加載功能後,但它不能正常工作。

+0

最有可能的,你是A之前初始化不錯滾動jax請求完成。嘗試在Ajax請求的成功事件處理程序中初始化良好的滾動。 – Tariqulazam

+0

問題是,當我去主頁(加載Ajax)和它的作品,但當我去靜態頁面(如聯繫人),然後我點擊菜單項加載ajax,然後它不工作當我改變窗口大小的時候。 –

+0

是否有可能將您的代碼包含在小提琴中供我們查看? – Tariqulazam

回答

12

當div上的內容發生變化時,您需要調用nicescroll調整大小的方法。

$("your-div-name").getNiceScroll().resize() 

請記住,如果圖像尺寸未在img標籤中設置,則需要在所有圖像完全加載時調用調整大小。

0

請您務必使用下面的代碼來解決您的問題。它適用於Ajax負載。

$("MYSCROLLCONTAINERS").getNiceScroll().remove(); 
$("div[id^='ascrail']").remove(); 
jQuery("MYSCROLLCONTAINERS").niceScroll({ 
       autohidemode:false 
      }); 

這對我有效。

2

除了InuYaksa的回答以外如果您沒有訪問實現,您可以在內容包裝器上實現mouseover函數作爲解決方法。

// Call resize whenever mouse 
$("#scroll-area").mouseover(function() { 
    $("#scroll-area").getNiceScroll().resize(); 
}); 

來自:http://eureka.ykyuen.info/2013/05/07/jquery-nicescroll-plugin-doesnt-work-for-dynamic-content/

改進鼠標懸停解決方案

//in the case of scrolling content loaded via AJAX 
    $(document).on('mouseover','#scroll-area', function() { 
     $(this).getNiceScroll().resize(); 
    }); 

使用視/包

$(document).on('mouseover','#scroll-wrap', function() { 

    var widget_wrap=$(this); 
    var widget_viewport=$(this).parent(); 

    widget_viewport.getNiceScroll(widget_wrap).resize(); 

}); 
相關問題