0

我正在使用 JQuery BlockUI 插件:

function block(msg) {
    $.blockUI({
        message: msg,
        css: {
            border: 'none',
            padding: '15px',
            backgroundColor: '#000',
            '-webkit-border-radius': '10px',
            '-moz-border-radius': '10px',
            opacity: .8,
            color: '#fff'
        }
    });
}

function unblock() {
    $.unblockUI();
}

我面临的问题是,一旦我调用它,它就会将我的页面滚动到顶部。情况不妙。

这是生成的html:

在此处输入图像描述

有什么我可以修改的,这样它就不会触及 pageoffset / 滚动?有什么我可以做的来保存它吗?

谢谢

在这里调用:

function callBump(realid) {

    block('Bumping...');

    $.ajax({
        type: "POST",
        url: "CalendarServices.aspx/Bump",
        data: 'id=' + realid,
        success: function (data) {
            $('#calendar').fullCalendar('refetchEvents');
            unblock();
        }
,
        error: function () {
            unblock();
        }
    });
}
4

1 回答 1

1

我猜想跳到顶部是由这样的事情引起的:

<a href="#" id="do_bump">Bump!</a>

无论您绑定到该链接的点击事件是否正在执行,但它会继续尝试导航到导致跳转的“#”。

它可以通过捕获事件参数(添加e到您的点击事件处理程序)并调用它来修复preventDefault()。这可以防止发生默认的链接单击行为,即导航到href属性值。

鉴于你的意见,你有这个:

$(btnBump).off('click'); 
$(btnBump).on('click', function () { 
    callBump(event.realid); 
});

event来自哪里?这是window.event吗?假设 jQuery 可能会破坏你的事件,试试这个(你只需要添加事件参数e):

$(btnBump).on('click', function(e) {
    callBump(event.realid);
    e.preventDefault();
});
于 2013-04-25T12:49:47.810 回答