Javascript 自定义jQuery插件

Javascript 自定义jQuery插件,javascript,jquery,Javascript,Jquery,我很快编写了这个jquery插件。当我传递给它一个$element时,它会向上滑动,但随后它在这个.empty()上断开,声称这不是一个函数。有什么问题吗 (function ( $ ) { $.fn.slideUpEmpty = function(t, callback){ this.slideUp(t, function(){ this.empty(); if(callback){ ca

我很快编写了这个jquery插件。当我传递给它一个$element时,它会向上滑动,但随后它在这个.empty()上断开,声称这不是一个函数。有什么问题吗

(function ( $ ) { 
 $.fn.slideUpEmpty = function(t, callback){
        this.slideUp(t, function(){
            this.empty();   
            if(callback){
                callback(); 
            }
        });
    }

}( jQuery ));
使用


slideUp
回调中,
引用DOM元素,如中所述:

回调不会发送任何参数,但
设置为正在设置动画的DOM元素

因此,如果要对其调用jQuery方法,必须首先将其传递给jQuery:

$(this).empty();
这将在动画制作完成后清空每个元素,因为回调是针对每个选定元素执行的

如果要仅在所有动画制作完成后才清空它们,可以使用:


这只在所有元素完成动画制作后执行传递给
.done
的回调一次。

滑块p
回调中,
指的是DOM元素,如下所述:

回调不会发送任何参数,但
设置为正在设置动画的DOM元素

因此,如果要对其调用jQuery方法,必须首先将其传递给jQuery:

$(this).empty();
这将在动画制作完成后清空每个元素,因为回调是针对每个选定元素执行的

如果要仅在所有动画制作完成后才清空它们,可以使用:


这只在所有元素完成动画后执行传递给
.done
的回调一次。

您是否尝试过$(This).empty()?否,因为我不明白为什么slideUp可以在jQuery插件方法中没有$()的情况下接受此回调,
引用jQuery对象。在jQuery方法回调中,
this
引用DOM元素。您尝试过$(this).empty()吗?没有,因为我不明白为什么slideUp在jQuery插件方法中没有$()就可以接受它,
this
引用jQuery对象。在jQuery方法回调中,
引用DOM元素。
this.slideUp(t).promise().done(function() {
    this.empty(); // no `$(this)` here, `this` is already a jQuery object
});