等待javascript显示一个元素,然后隐藏它



嗨,我有一个JQuery js,它在AJAX调用后会做这样的事情:

$element.next().after('<td><b>OPTION SAVED</b></td>');
$element.next().next().hide();
$element.next().next().show('slide', {direction : 'left'}, 1000);

现在我想做的是称之为=>

$element.next().next().next().hide("slow");

所以基本上我想动态地创建一个元素,从左边滑动它,在它出现后,我想让它再次慢慢隐藏它。我该怎么做?我的问题是,即使元素还没有完成滑动(或者它的创建?(,js代码也会被执行,所以当我调用hide("slow"(时,它会告诉我在未定义的情况下调用了它,什么都没发生。。。

感谢

$element.next().after('<td><b>OPTION SAVED</b></td>').hide().show('slide', {direction : 'left'}, 1000, function(){$(this).hide();});

如果可行,调用的链接意味着after将返回您刚刚添加的元素,然后显示它并添加回调函数以再次隐藏它。

如果我理解您对问题的描述。你的问题是你有太多的next s。

$element.next().next().show('slide', {direction : 'left'}, 1000);

请注意,这里有2个next

$element.next().next().next().hide("slow");

那么这里有3个next s。NOT相同的元素。如果要隐藏相同的元素,则从hide中删除一个next

或者更好的是,只需连锁:

$element.next().next()
   .show('slide', {direction : 'left'}, 1000)
   .hide("slow");

您应该使用回调函数:

$element.show(duration, easing, callback_function);

动画完成后将执行回调函数。

再见!

相关内容

  • 没有找到相关文章

最新更新