无法更新jQuery mCustomScrollbar

时间:2013-07-11 01:42:54

标签: jquery asp.net jquery-ui gridview scrollbar

我正在使用http://manos.malihu.gr/jquery-custom-content-scroller/中的自定义滚动条。

我在包含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中。

你能帮帮我吗?

1 个答案:

答案 0 :(得分:3)

我已经找到了解决方案。

对于slideToggle,

我们要做的就是将Update放在一个函数中并在切换中调用它。即切换完成后调用该函数。

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');
})

所以Toggle问题已经解决了。

来到第二个问题 - GridView。当更新GrodView时,必须更新滚动条。为此,我们必须在每次回发时调用此函数。我这里没有使用更新面板,所以如果在页面加载中回发,我会调用此函数。

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

因此解决了问题。