JQuery backgroundcolor更改(.animate或.css)仅在重新启动后才能工作一次?

时间:2012-02-18 01:11:38

标签: javascript jquery background-color

大家好,我有一个很大的问题,我不太明白为什么会这样。

问题是,我得到了jquery插件jquery.color,这样我可以每6秒交替改变4个div的颜色,这样当第一个是白色时,其他的是黑色,当第二个是白色时其他是黑色等等。

当我开始编程时,一切都正常工作,我认为我正在取得进展,但我再试一次,没有......我认为这可能是jquery color plugin的错,所以我决定给jquery UI插件一个去。我清空了缓存并重新启动了mac,尝试了“新”插件并且它再次工作,所以我开始编程一点,再次尝试,BAM同样的事情发生......

奇怪的是,完全相同的代码在重新启动后仍可正常工作,但第二次无效...

我使用了以下jquery插件:jquery.urlrewrite,jquery.easytabs,jquery.ae.image.resize,当然还有jquery-ui。

我用于测试目的的.JS代码的小片段是:

var intervalo = window.setInterval(caneco, 6000);

function caneco(){


$("#triangulo").animate({
top: "120px"
}, 1000 );

$("#juntaimg").animate({
left: "-451px"
}, 1000 );

$("link1").animate({
  'background-color': "black"
}, 1000);


}

最奇怪的是,除了backgroundColor之外的所有其他动画更改都能完美地运行...

任何人都可以帮我吗?请??

2 个答案:

答案 0 :(得分:1)

对于有这个问题的人来说,这是由于index.php和update.php之间的冲突,它是使用jquery的.load加载到div中的。由于我独立开发了所有内容,然后加入了它,我将jquery 1.7.1加载了两次,有一些php脚本被加载两次等等......所以基本上我通过使用这样的约束.load来解决所有问题:

$("#finalcontainer").load("updates.php #initialcontainer");

然后我只是将该页面的所有css移动到索引css文件(我知道我应该已经完成​​了但是这个bug已经杀了我!)而且我还将updates.php的所有.js动画移动到index.php。

这就是我如何压扁我的错误。而且一直以来都是我的错...

答案 1 :(得分:0)

这是一个完全正常的jsFiddle:

我纠正/改变了一点(例如间隔和动画描述),但这不应该是一件大事 - 如果它有效,你的代码应该可以工作。

如果这对您有用而您的本地版本没有,请尝试这样做一个小例子 - 只需包含jQuery和jQuery UI以及jsFiddle中的代码,看看是否有效。如果是这样,它可能是一些错字/遗漏标签或任何其他语法错误,使其无法正常工作。

顺便说一下,您可能需要setTimeout而不是setInterval,因为后者会每n毫秒重复一次调用,而setTimeout则会运行一次。