$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(".subscription", this).toggleClass('selected');
});
フィドル: http://jsfiddle.net/XPVVp/
何らかの理由でクラスを切り替えません。なぜ機能しないのかわかりません。
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(".subscription", this).toggleClass('selected');
});
フィドル: http://jsfiddle.net/XPVVp/
何らかの理由でクラスを切り替えません。なぜ機能しないのかわかりません。
これは、選択がコードの記述方法.subscription
である要素の子ではないためです。input
代わりに、.subscription
要素は親であるため、適切な jQuery 操作を使用して、次のように適切な親を見つける必要があります。
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(this).closest(".subscription").toggleClass('selected');
});
.closest()
セレクターに一致する最初の親が見つかるまで、親チェーンを検索します。
ここでの動作デモ: http://jsfiddle.net/jfriend00/krTER/
そのセレクターで何をしたかったのか本当にわかりません...「this」セレクターを使用してラジオボタンを取得し、.parent() ディレクティブで 1 レベル上げることができます。
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(this).parent().toggleClass('selected');
});
使用することもできます
$('.subscription').toggleClass('selected');
上記のクラスの要素が 1 つしかない場合。
input
は div 要素内にあり、.subscription
その逆ではないためです。したがって、.subscription
下に要素はありませんthis
...適用toggleClass()
するものはありません。正確に何を達成したいですか?
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$([".subscription", this]).toggleClass('selected');
});
働いているようだ