我的jQuery / animate.css
代码中有一个错误。问题是一个被调用两次的事件处理程序,但它应该只执行一次。你可以在这里找到代码,重要的一行如下:
$('#tiles').addClass(tiles_in).one(animation_end, function() {
// called twice
log('tiles in');
});
要重现错误,请按以下步骤操作:
change_tiles
tiles out
tiles in
div
,这是新日志
tile out // normal
tiles in // why ?
Tiles in
,因此不应再次调用{p> one()
。文档说" .replaceWith()
方法删除与删除的节点关联的所有数据和事件处理程序。"所以我不知道。
答案 0 :(得分:3)
为什么?
对.one()
的调用位于第一个.one()
事件处理程序中,其中事件附加到同一个选择器#tiles
答案 1 :(得分:0)
我在记录被解雇的事件后自己找到了它。
https://jsfiddle.net/uhz6Ly0s/8/
animationend
第一个事件是webkitAnimationEnd
,第二个事件是 $|=1;$SIG{CHLD} = "IGNORE";
。出于某些原因,第二个在click事件结束时被触发。