0
このコードは動作します。しかし、私はこれが閉鎖を実装するための候補者であるかどうか考えてきました。私を聞いてください。これはjavascript Closureの候補ですか?
私はこれをしたい:
$(".trigger").click(function() {
$(this).parents(".heading").next(".list").slideToggle("slow", function() {
$(this).toggleClass("close");
$(this).parents(".heading").toggleClass("close");
});
});
実行が側slideToggle
機能this
にある問題はtrigger
を指していないようです。私はこれを行うことで仕事を見つけた:
$(".trigger").click(function() {
var self = $(this);
$(this).parents(".heading").next(".list").slideToggle("slow", function() {
$(self).toggleClass("close");
$(self).parents(".heading").toggleClass("close");
});
});
それは動作します。しかし、私は閉鎖を実行するための良い候補者かどうか疑問に思っていますか?そして、コード品質を向上させます。ありがとう。
クロージャーとは何ですか? –
なぜ 'this'は別の関数内のクリックされた要素を指していますか? 'slideToggle'のドキュメントを一読しましたか?コールバックの中で、 'this'は滑る要素です。 – adeneo
なぜ '' self''が '' $(this)) ''ならば、 '' $() ''に '' self''を再度ラップしますか? –