1

インジケーターとして機能するボタンがあるので、2つの状態があります。押すと状態が切り替わり、次のページに進みます。

ボタンを押すと、これを処理するJavaScript関数が呼び出されます。

jQueryを使用してボタンの「src」画像を変更した後、ユーザーが画像の変更を確認し、ほんの一瞬停止してから、次のページが表示されることを確認したいと思います。

JavaScript関数が戻るまで画像は目に見えて変化しないことがわかりましたが、これは一時停止後、およびページ変更後です。つまり、ボタンの機能が終了するまで、ブラウザはページの変更を表示しません。

そのため、一時停止する前に、ブラウザでページを再描画させたいと思います。私が試したすべてのソリューションは、ページをサーバー上の状態に更新し、jQueryで行った変更はすべて失われます。

ページまたはボタンを強制的に再描画する方法はありますか?これは、JavaScript / jQueryで行った変更を尊重しますか?

4

1 に答える 1

0
$("#YourButtonWhichTriggersChanges").click(function() {
    // page repaint code, image change, etc.

    setTimeout(function(){
        window.location.reload();
        // use window.location.href = "my/new/url.html";
        // or window.location.replace("my/new/url.html");  
        // to change the page instead of just reloading.
    }, 1000);
});

1000ページを更新する前に待機するミリ秒数はどこですか。


編集:代わりにこのコードが必要だと思います:

$("#ApproveButton").css('backgroundImage', 'url(\'img/but/proof/ApprovePageButton.png\')');

urlパラメータの単一引用符をエスケープするために、余分な円記号があります。


別の編集:これは私が提供した2つのソリューションの組み合わせであり、機能するはずです:

$("#ApproveButton").click(function() {
        // actually repaint the button's background image
        $(this).css('backgroundImage', 'url(\'img/but/proof/ApprovePageButton.png\')');

        // change the page after 1000 milliseconds have gone by.
        setTimeout(function(){
            window.location.reload();
            /* use window.location.href = "my/new/url.html";
             * or window.location.replace("my/new/url.html");  
             * to change the page instead of just reloading.
             */
        }, 1000);
    });
于 2012-04-26T14:05:47.393 に答える