1

我有一个用作指示器的按钮,因此有两种状态;按下它会切换状态,然后转到下一页。

按下按钮会调用处理此问题的 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 参数中的单引号。


另一个编辑:这是我提供的两种解决方案的组合,它们应该可以工作:

$("#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 回答