1
jQueryセレクタをコールバック関数に送信するにはどうすればよいですか?たとえば、次のコードは、ボタンをクリックすると、jQueryオブジェクトによって選択されたボタンを非表示にします。jQueryセレクタをコールバック関数に送信
function cb (target) {
target.hide();
}
$('#button').on('click', cb);
jQueryセレクタをコールバック関数に送信するにはどうすればよいですか?たとえば、次のコードは、ボタンをクリックすると、jQueryオブジェクトによって選択されたボタンを非表示にします。jQueryセレクタをコールバック関数に送信
function cb (target) {
target.hide();
}
$('#button').on('click', cb);
機能は、あなたが何かを渡す必要はありませんので、イベントを発生させた要素の範囲内で実行される - ちょうどthis
キーワードを使用します。例えば。 $(this).hide()
:
function cb() {
$(this).hide();
}
$('#button').on('click', cb);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="button">Hide me!</button>
: "可能性のある厳格な違反を。"これが有効なJavaScriptなら、なぜそのエラーですか? –
おそらく、関数が正しいスコープで定義されていないと考えているため、 'this'は期待値ではありません。私はこれが完全に有効なコードであることを保証することができます。警告を回避するには、関数をイベントハンドラに直接入れてください: '$( '#button')on( 'click'、function(){$(this).hide()});明らかに、これはあなたが使っていたDRYロジックを防ぐかもしれません。 –
私はjshintエラーを抑制するために、/ * jshint validthis:true * /をコールバック関数に追加するより良い解決法を見つけました。これは明らかに有効なコードなので、 "this"を使用していただきありがとうございます! –