2012-12-20 54 views
0

我正在使用一个应用程序,在jquery点击事件中执行两个步骤。 1.使用精灵和颜色属性更改元素的CSS属性 2.运行迭代扫描页面的函数。有一个函数在功能中改变DOM

是否有可能使页面更改并在浏览器中显示它,然后运行迭代?

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(); 
}); 
+3

是的,这是可能的。但是你有关于你现有的代码的问题吗?如果是这样,请张贴它,否则,请修改您的问题以获得更具体的内容。 –

回答

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毫秒,大多数浏览器会做他们平常的行为(重新绘制页面,开始他们的业务等),然后负责预定的事件。

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

+0

这只是部分工作..我必须添加30而不是0作为首先改变CSS的参数。 – RyanDawkins

相关问题