Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery动画代码没有';不能在谷歌Chrome上工作,只能在Firefox上工作_Jquery_Jquery Ui_Firefox_Google Chrome - Fatal编程技术网

jQuery动画代码没有';不能在谷歌Chrome上工作,只能在Firefox上工作

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”); $(“正文”)。附加(表格); 这

好的,我有这段代码,它为表格元素的背景设置动画

HTML:


一些随机文本
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);