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 は次のとおりです。

ここに画像の説明を入力

ページオフセット/スクロールに触れないように変更できるものはありますか? それを保存するために何かできることはありますか?

ありがとう

ここで呼び出されます:

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 に答える