0

我正在使用在 jquery 单击事件期间执行两个步骤的应用程序。1. 使用 sprite 和颜色属性更改元素的 CSS 属性 2. 运行迭代扫描页面的函数。

是否可以让页面进行 css 更改并将其显示在浏览器中,然后运行迭代?

通过向元素添加类和删除类来进行 css 更改。

onBtn.click(function(event){
    if(clicked['mon'] == 0){
        monBtn.attr("class", "active");
        clicked['mon'] = 1;
        dow['mon'] = 1;
    }
    else {
        monBtn.removeClass("active");
        clicked['mon'] = 0;
        dow['mon'] = 0;
    }
        checkIfButtonsAreClicked();
});
4

1 回答 1

1

如果您在运行其他代码之前正在寻找要更新的屏幕,您可以将代码设置为在 0 毫秒内触发:

makeCSSChanges();
setTimeout(function () {
    // The browser will only run this callback once it's taken a breath and
    // done its usual behind-the-scenes stuff.
    scanThePage();
}, 0);

当超时设置为 0 毫秒时,大多数浏览器将执行其通常的行为(重绘页面、执行其业务等),然后处理预定事件。

但是,在大多数情况下,延迟不会引起足够的重视。如果延迟明显,那么我们正在接近也可能滞后于整个浏览器的那种延迟。小心。

于 2012-12-20T03:22:57.450 回答