0

我有:

$('p').fadeOut(300, function() { $(this).remove(); });

但为什么我不能做这些?:

$('p').fadeOut(300, $.fn.remove);
$('p').fadeOut(300, $().remove);
var p = $('p'); p.fadeOut(300, p.remove);
4

1 回答 1

5

$('p').fadeOut(300, $.fn.remove);

$.fn.remove在没有上下文的情况下传递。$.proxy($.fn.remove, $("p"))会在这里工作

$('p').fadeOut(300, $().remove);

在没有上下文的情况下通过。 $.proxy($().remove, $("p"))会在这里工作

p.fadeOut(300, p.remove);

在没有上下文的情况下通过。$.proxy(p.remove, p)会在这里工作

所以修复代码:

$('p').fadeOut(300, $.proxy($.fn.remove, $("p")));
$('p').fadeOut(300, $.proxy($().remove, $("p")));
var p = $('p'); p.fadeOut(300, $.proxy(p.remove, p));

http://jsfiddle.net/gtv85/

于 2013-02-25T17:02:53.543 回答