jQuery动画代码没有';不能在谷歌Chrome上工作,只能在Firefox上工作
好的,我有这段代码,它为表格元素的背景设置动画 HTML:jQuery动画代码没有';不能在谷歌Chrome上工作,只能在Firefox上工作,jquery,jquery-ui,firefox,google-chrome,Jquery,Jquery Ui,Firefox,Google Chrome,好的,我有这段代码,它为表格元素的背景设置动画 HTML: 一些随机文本 JS: 函数doItOn(el){ var backgroundColor=el.css(“backgroundColor”); el.css(“背景色”、“黄色”); el.animate({backgroundColor:backgroundColor},2000年); } var表=$(“动态td”); 美元(foo2);; doItOn(table.find(“tr”); $(“正文”)。附加(表格); 这
一些随机文本
JS:
函数doItOn(el){
var backgroundColor=el.css(“backgroundColor”);
el.css(“背景色”、“黄色”);
el.animate({backgroundColor:backgroundColor},2000年);
}
var表=$(“动态td”);
美元(foo2);;
doItOn(table.find(“tr”);
$(“正文”)。附加(表格);
这适用于Firefox,但不适用于Chrome
但是,如果我移动doItOn(table.find(“tr”)代码>以下$(“正文”)。追加(表格)代码>,它在两种情况下都能工作。()
为什么会发生这种情况
编辑:我也在使用jQueryUI,因为jQuery不支持背景色动画。这可能是不可预测的行为。jQuery文档对.animate()
函数说:
所有已设置动画的属性都应设置为单个数值,以下说明除外;大多数非数字属性不能使用基本jQuery功能设置动画(例如,宽度、高度或左侧可以设置动画,但背景色不能设置动画,除非使用jQuery.color()插件)。除非另有规定,否则特性值将被视为像素数。在适用的情况下,可以指定单位em和%
编辑:这在使用jQuery UI时不适用。对不起,忘了提一下,我也在使用jQuery UI。@user1527166啊。然后你失去了我-我不是一个普通的jQUI用户…:-pOn Safari(Mac),两个小提琴都能正常工作,即使Safari和Chrome共享同一个布局引擎。你使用的是什么操作系统和浏览器版本?你的第一个小提琴会在Chrome中抛出一个错误,但第二个不会。有点道理,因为您正在尝试为尚未添加到DOM的元素的背景色设置动画。@RandyMarsh Chrome 21,Mac 10.7.2上的Firefox 15。你在Chrome上试过了吗?我又试了一次,但它在Safari中已经不起作用了。我想我之前把订单搞乱了。我从来没有让它在Chrome上工作过。如果是解析JS,则在执行doItOn(table.find(“tr”)
)时尝试获取所有表行,但随后添加另一行$(“body”).append(table)
,该行不会传递给animate函数,因为是在之后创建的。这是WebKit下的预期行为:JS语句按顺序执行。然而,如果Firefox正在尝试一些优化技巧,这可能解释了意外的行为。
<table>
<tr>
<td id="foo2">Some Random Text</td>
</tr>
</table>
function doItOn(el) {
var backgroundColor = el.css("backgroundColor");
el.css("backgroundColor", "yellow");
el.animate({backgroundColor: backgroundColor}, 2000);
}
var table = $("<table><tr><td>Dynamic td</td></tr></table>");
doItOn($("#foo2"));
doItOn(table.find("tr"));
$("body").append(table);