2013-07-11 37 views
4

我使用http://manos.malihu.gr/jquery-custom-content-scroller/的自定義滾動條。無法更新jQuery mCustomScrollbar

我在包含gridview的div上使用它。當一個新行添加到Gridview並超過大小時,不會顯示滾動條。

我有另一個問題有一個div內,我正在使用一個按鈕切換該div的顯示。

我無法更新滾動條

(function($) { 
$(window).load(function() { 
$("#rightFixed").mCustomScrollbar({ 
scrollInertia: 150, 
autoHideScrollbar: true, 
updateOnBrowserResize: true, 
updateOnContentResize: true, 
theme: "dark-2" 
}); 
}); 
})(jQuery); 

$(function() { 
$("#showTax").click(function() { 
$("#cartTaxDiv").slideToggle(); 
$(this).text($(this).text() == 'Show Tax' ? 'Hide Tax' : 'Show Tax'); 
$('#rightFixed').mCustomScrollbar("update"); 
}); 
}); 

一件事滾動條初始化事件是$(window).load和按鈕單擊是$(document).ready

你能幫我嗎?

回答

3

我已經想出瞭解決方案。

對於slideToggle,我們所要做的就是將更新放入一個函數中並在切換中調用它。即切換完成後調用該函數。

function updateScrollbar() { 
    $('#rightFixed').mCustomScrollbar("update"); 
} 

$("#showTax").click(function() { 
    $("#cartTaxDiv").slideToggle(updateScrollbar); // Call the update Scrollbar after the sliding is done. 
    $(this).text($(this).text() == 'Show Tax' ? 'Hide Tax' : 'Show Tax'); 
}) 

因此,切換問題已解決。

即將到來的第二個問題 - GridView。當GrodView更新時,滾動條必須更新。因此,我們必須在每次回發時調用此函數。我沒有在這裏使用更新面板,所以如果在頁面加載中回發,我會調用這個函數。

if (IsPostBack) 
{ Page.ClientScript.RegisterStartupScript(this.GetType(), "myscript", "updateScrollbar();", true); } 

因此問題解決了。

+1

感謝您分享此內容。很多人沒有意識到分享你自己的解決方案的重要性和幫助。 +1 – Onimusha

+0

另外,對我來說,它更好地作爲'$(「#mydiv」)。slideToggle(500,updateScrollbar);' – Onimusha