0

これまで、常にクリックイベントのコールバックであったため、「this」疑似変数に大きく依存しているjs関数があります。「this」は <li> 要素です。

ただし、より複雑なルートを使用してトリガーされることがある状況があり、これらの状況では「これ」はまったく異なる要素です。ただし、関数を呼び出す前に、関連する <li> を見つけることができますが、これを「this」としてフィードできる方法はありますか? <li> で .each() を使用することを考えましたが、単一の要素では機能しません。

編集each() は単一の要素で機能することがわかりました..エラーは別のものであることが判明しました。

他の人に役立つ可能性があるため、この質問は削除していません

4

2 に答える 2

2

callメソッドを探しています:

function onClick() {
    console.log(this); // will be the #test element in both cases
    return false;
}

$('#test').click(onClick);

$('#test2').click(function() {
    onClick.call($('#test')[0]);
    return false;
});

これはapplyでも可能ですが:

onClick.apply($('#test')[0]);

jQuery でラップされたセットではなく、実際の[0]DOM 要素を渡すために必要です。

于 2009-06-30T16:24:23.700 に答える
0

jquery.callback pluginを使用してみてください。コールバックのコンテキストを保持します。

于 2009-06-30T16:28:02.467 に答える