0
/* get every click event on input tags and send it to foo */
$('input').click( function() {
   foo($(this));
});

function foo(obj) {
/* do something with obj.. */
}

foo上記のコードでは、入力オブジェクトが引数として関数に渡されますobj。どのように使用すればよいobjですか? $(obj)すべてのjquery固有のメソッドを使用するように、セレクターを再実行する必要がありますか?

objいくつかの質問: $() で再度ラップする必要はないと答えています。で再ラップobjするとどうなり$(obj)ますか?foo(関数はjqueryで選択されたオブジェクトとjqueryで選択されていないオブジェクトの両方を取ることができると仮定します)

4

4 に答える 4

1

jQuery オブジェクトを渡しているので、再度ラップする必要はありません$()

関数内で jQuery 関数を実行してみましたfooか?

$('input').click( function() {
   foo($(this));
});

function foo(obj) {
   console.log(obj.val()); //should print the value in the console.
}

いくつかの質問: 答えは、obj を $() で再度ラップする必要はないと言っています。obj を $(obj) で再ラップするとどうなりますか? (関数 foo は、jquery で選択されたオブジェクトと jquery で選択されていないオブジェクトの両方を取ることができるとします)

obj[0]元のthisオブジェクトを取得するために行うことができます。

于 2013-02-13T16:17:11.037 に答える
1

いいえ、すでに jQuery オブジェクトを渡しているので、再ラップする必要はありません。しかし、jQuery イベント ハンドラーthisはコールバックのように要素を割り当てるため、次のように簡潔に記述できます。

$('input').click(foo);

function foo() {
    /* do something with this.. */
}
于 2013-02-13T16:19:44.300 に答える
0

いいえ、オブジェクトをその参照から再度使用できます。再選択する必要はありません。

于 2013-02-13T16:19:46.000 に答える