関数$.(this)
の後に再宣言することはできませんか?$.click()
これらのどれも機能していないように見えるため:
$(this) = $(this).find('span');
var $(this) = $(this).find('span');
が正当な識別子var foo
である場合にのみ宣言できます。foo
$(this)
引数で指定された関数を呼び出した結果であるため、宣言では無効です。$
this
また、上書きしないでくださいthis
。将来、頭を悩ませる可能性があります。
のjQueryバージョンを格納するためのローカル変数が必要な場合this
、一般的な規則は次のとおりです。
var $this = $(this);
var $span = $this.find('span');
ここで、(完全に合法ですが、時々眉をひそめる)$
プレフィックスを使用すると、変数がjQueryオブジェクトであり、プレーンなDOM要素ではないことを思い出すことができます。
この規則により、次のことを行うことの無駄な(しかし一般的な)エラーを見つけることもできます。
var jqobj = $(myobj)
はすでにjQueryオブジェクトですmyobj
。
式$(this)
は変数宣言ではなく、式です。何かを再宣言したい場合は、それを変数に格納する必要があります
var saved = $(this);
saved = $(this).find('span');
最終バージョンが機能する理由は、実際の識別子に割り当てているためです。
$('some').on('click', function() {
var refrence = $(this);
var span = refrence.find('span')
// to override the $this you can use
refrence = refrence.find('span');
});