入力html要素にjavascriptハンドラがあります。入力html要素は多くの場合があります。ポイントは、入力html要素に値を挿入するたびに、値を持つ入力の背景色を変更するために、その要素にクラスを追加したいと考えています。今、私はやっています:** $( 'this.seat_box')。toggleClass( 'selected'); ********しかし、これはクラスを持つすべての要素に影響します。何とかこれを参照しているinput要素のハンドラ関数の引数を渡す方法はありますか?値がその要素に挿入されたときに入力要素のクラスを切り替える方法
すべてのヘルプは感謝... のonchange = "bc.seatBoxHandleEvent(『入力』、この)と働いていたこれらのいずれも
HTMLコード:私は、引数などの引数を渡すために試してみました。!:
<div class="bus-builder-seat-box-container" id="dynamic-bus-builder-1">
<input id="posA100" type="text" class="seat_box" onchange="bc.seatBoxHandleEvent()">
<input id="posA101" type="text" class="seat_box" onchange="bc.seatBoxHandleEvent()">
</div>
私はjavascriptの検証のため、次のコードを持っている:。
bc.seatBoxHandleEvent = function() {
bc.checkInput();
var seatNumberFirstFloor = $('#dynamic-bus-builder-1');
if (seatNumberFirstFloor && seatNumberFirstFloor.valueOf()) {
var leftStreaming = (event.target.id);
var rightStreaming = 'posB1' + leftStreaming.substring(5, 7);
document.getElementById(rightStreaming).innerHTML = event.target.value;
}
}
bc.checkInput = function() {
var targetValue = event.target.value;
var id = event.target.id;
var classOfInput = event.target.classList;
if (targetValue !== 8 && targetValue !== 0 && (targetValue < 48 || targetValue > 57)) {
console.log('valid number');
console.log(classOfInput);
**$('this.seat_box').toggleClass('selected');********
}
else {
console.log('invalid character');
}
}
' $( 'this.seat_box')は '、どのような目的のために意味がありません、それはいけません引用符で囲みます。 '$(this).toggleClass( 'selected')'を試してください。 – nnnnnn
ありがとうございますが、動作しません。私は今試してみましたが、前に試しました.... –
ああ、申し訳ありません、私はあなたのすべての機能が 'bc'と呼ばれるオブジェクトのメソッドであり、それらを 'this 'と呼ぶのは' bc'です。その場合、 'event'オブジェクトを引数として渡し、イベントが起こった要素への参照を取得するために' event.target'を使用する必要があります。 jQueryを使用している場合、イベントハンドラをjQueryにバインドしていない理由がいくつかありますか? – nnnnnn