2013-07-11 24 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