私は持っています:
$('p').fadeOut(300, function() { $(this).remove(); });
しかし、なぜ私はこれらのいずれかを行うことができないのですか?:
$('p').fadeOut(300, $.fn.remove);
$('p').fadeOut(300, $().remove);
var p = $('p'); p.fadeOut(300, p.remove);
私は持っています:
$('p').fadeOut(300, function() { $(this).remove(); });
しかし、なぜ私はこれらのいずれかを行うことができないのですか?:
$('p').fadeOut(300, $.fn.remove);
$('p').fadeOut(300, $().remove);
var p = $('p'); p.fadeOut(300, p.remove);
$('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));