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 に答える