Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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
Javascript animate()似乎一次只能处理一个元素?_Javascript_Jquery_Html - Fatal编程技术网

Javascript animate()似乎一次只能处理一个元素?

Javascript animate()似乎一次只能处理一个元素?,javascript,jquery,html,Javascript,Jquery,Html,我有一些动态创建的元素,应该是动画。只要在动画结束前不启动另一个动画,动画就可以正常工作 我有一个模型设计 它工作得很好,但是如果你点击“POST!”你会看到前面的气泡并没有完全完成动画制作。相反,他们只是中途停下来。如果更改动画速度,效果会更加明显 有人知道可能是什么原因吗?使用if条件手动检查jquery代码中的完成情况我复制了您的代码并将其放入JSFIDLE: 您的问题在于这一行: $('#chatbox').html( html+$('#chatbox').html() ); 你本质上

我有一些动态创建的元素,应该是动画。只要在动画结束前不启动另一个动画,动画就可以正常工作

我有一个模型设计

它工作得很好,但是如果你点击“POST!”你会看到前面的气泡并没有完全完成动画制作。相反,他们只是中途停下来。如果更改动画速度,效果会更加明显


有人知道可能是什么原因吗?

使用if条件手动检查jquery代码中的完成情况

我复制了您的代码并将其放入JSFIDLE:

您的问题在于这一行:

$('#chatbox').html( html+$('#chatbox').html() );
你本质上是在用当时的chatbox替换chatbox中的所有内容,取消任何动画

与JSFIDLE链接中一样,替换为:

 $('#chatbox').prepend($(html));
这是添加到DOM中,而不是替换它。将html变量包装在$()中将其转换为jquery对象

jQuery中的类也被称为侧建议,可以在前面加一个句号来引用。您的代码在这里:

$('#chatbox').find('[class="chatbubble"]:first')
相当于

$('#chatbox .chatbubble:first')

阅读CSS选择器将帮助您理解jQuery符号的含义。

所有.animate()调用都已完成。我添加了一个回调,弹出一个警报框,点击两次,弹出两个框,这样调用就成功了。编辑:我通过调用$('#chatbox').find('[class=“chatbuble”]:first')来选择对象。也许它一直在存储对第一个对象的引用?谢谢,就是这样!我将来也会研究JSFIDLE,因为它听起来很有用,您的链接已经失效了。如果没有问题中的代码,这个问题对于未来的访问者来说是无用的。