我正在尝试做一个.delay()和.fadeOut(),然后是.remove()
但delay和fadeout在remove中不起作用
下面是我的代码:
jQuery("#container").delegate(".remove", "click", function (e) {
e.preventDefault();
var parent = jQuery(this).data('parent');
jQuery(this).closest('.' + parent).fadeOut(1000).delay(1000).remove();
})发布于 2013-07-22 15:51:18
好呀
jQuery(this).closest('.' + parent).fadeOut(1000, function(){
$(this).remove()
});在这种情况下,您应该使用.fadeOut()提供的完整回调
jQuery("#container").on("click", ".remove", function (e) {
e.preventDefault();
var $this = jQuery(this), parent = $this.data('parent');
$this.closest('.' + parent).fadeOut(1000).delay(1000).remove();
})发布于 2013-07-22 15:47:51
.remove()不在查询中,也不是一个转换,所以.delay()将无法工作。请改用setTimeout。
jQuery(this).closest('.' + parent).fadeOut(1000, function(){
setTimeout($(this).remove(), 1000)
});附注:在较新版本的jQuery中使用.on()而不是.delegate()
发布于 2013-07-22 15:51:01
你可以像下面这样做
jQuery("#container").delegate(".remove", "click", function (e) {
e.preventDefault();
var parent = jQuery(this).data('parent');
//jQuery(this).closest('.' + parent).fadeOut(1000).delay(1000).remove();
jQuery(this).closest('.' + parent).delay(1000).fadeOut(1000, function(){
$(this).remove();
});
})请阅读下面的链接以了解执行此操作的其他方法。
Why can't I delay a remove call with jQuery
建议
尝试使用.on()而不是.delegate()
https://stackoverflow.com/questions/17782360
复制相似问题