3

関数$.(this)の後に再宣言することはできませんか?$.click()これらのどれも機能していないように見えるため:

$(this) = $(this).find('span');
var $(this) = $(this).find('span');
4

3 に答える 3

4

が正当な識別子var fooである場合にのみ宣言できます。foo

$(this)引数で指定された関数を呼び出した結果であるため、宣言では無効です。$this

また、上書きしないでくださいthis。将来、頭を悩ませる可能性があります。

のjQueryバージョンを格納するためのローカル変数が必要な場合this、一般的な規則は次のとおりです。

var $this = $(this);
var $span = $this.find('span');

ここで、(完全に合法ですが、時々眉をひそめる)$プレフィックスを使用すると、変数がjQueryオブジェクトであり、プレーンなDOM要素ではないことを思い出すことができます。

この規則により、次のことを行うことの無駄な(しかし一般的な)エラーを見つけることもできます。

var jqobj = $(myobj)

すでにjQueryオブジェクトですmyobj

于 2012-05-23T15:28:58.373 に答える
3

$(this)は変数宣言ではなく、式です。何かを再宣言したい場合は、それを変数に格納する必要があります

var saved = $(this);
saved = $(this).find('span');

最終バージョンが機能する理由は、実際の識別子に割り当てているためです。

于 2012-05-23T15:29:12.590 に答える
2
$('some').on('click', function() {
  var refrence = $(this);
  var span = refrence.find('span')
  // to override the $this you can use
  refrence = refrence.find('span');
});
于 2012-05-23T15:29:15.150 に答える