在jQuery中停止动画时如何恢复项?

在jQuery中停止动画时如何恢复项?,jquery,jquery-animate,Jquery,Jquery Animate,如果用户决定删除项目,“我的应用”将启动动画: $(data.args[0]).parents('li').hide(20000, function() { alert('the end') }); $(data.args[0]).parents('li').stop(); 如果在中间,用户因为认为不应删除此项目而单击紧急按钮,则应用程序将停止此动画: $(data.args[0]).parents('li').hide(20000, func

如果用户决定删除项目,“我的应用”将启动动画:

    $(data.args[0]).parents('li').hide(20000, function() {
        alert('the end')
    });
    $(data.args[0]).parents('li').stop();
如果在中间,用户因为认为不应删除此项目而单击紧急按钮,则应用程序将停止此动画:

    $(data.args[0]).parents('li').hide(20000, function() {
        alert('the end')
    });
    $(data.args[0]).parents('li').stop();
问题是,该项目仍然显示,但它是半透明的。如何使它恢复到原来的状态?我已经尝试过链接一个.fadein和一个.show,但没有成功。还测试了.stop的所有参数组合

这是原始代码:

$("#task-list").jstree({
    "plugins" : [ "themes", "ui", "html_data", "checkbox", "sort" ]
}).bind('check_node.jstree', function(e, data) {
    $(data.args[0]).parents('li').hide(10000, function() {
        var tid = this.id.split('-')[1];
        ajaxCall('delete_item', {id: tid})
    });
}).bind('uncheck_node.jstree', function(e, data) {
    $(data.args[0]).parents('li').stop(true, false);
});
在屏幕上,你似乎可以简单地打电话。停止这样:

$(data.args[0]).parents('li').stop(true, false).show();

达到效果。效果队列将清空,所有挂起的效果将被解除。然后元素再次显示。

最后,我解决了问题。首先,我使用.animate方法启动动画:

    $(data.args[0]).parents('li').animate({
        opacity: "hide"
    }, {
        queue: false,
        duration: 20000
    });
然后,我不得不用一个技巧使它起作用:

    $(data.args[0]).parents('li').stop().css('opacity', '1');

注意,此处应用的css使项目显示为原来的样子。

共享附加事件的代码。在“取消事件侦听器”中,您始终可以将其淡入。添加到问题:这将直接进入“隐藏”,而无需任何动画。我认为OP想再次展示它。