私はブートストラップV3.3を持っていると私はボタンとしてスタイル次checkbox
ES持っている:ブートストラップ:label.btnのチェックボックスがオンの場合、変更イベントが機能していません。
<div class="btn-group transactionSheetToolbarStatusToggle" data-toggle="buttons">
<label class="transactionSheetToolbarShowDraft btn btn-default active">
<input type="checkbox" autocomplete="off" checked="checked">Draft
</label>
<label class="transactionSheetToolbarShowFinalised btn btn-default active">
<input type="checkbox" autocomplete="off" checked="checked">Finalised
</label>
<label class="transactionSheetToolbarShowVoid btn btn-default">
<input type="checkbox" autocomplete="off">Voided
</label>
</div>
を、私は、チェックボックスのイベントを取得問題を抱えているように見えます。
私が試してみました:
$('.transactionSheetToolbarShowDraft input[type="checkbox"]').change(function() {...});
を、イベントがトリガされていたことを思えません。私も試してみました
:
$('.transactionSheetToolbarShowDraft input[type="checkbox"]').click(function() {...});
しかし、再び、それはイベントがトリガされていたことを思えません。 はその後、私はこれがあります。
$('.transactionSheetToolbarShowDraft').click(function() {...});
イベントがトリガが、間違って何かがあるように思われたが... 問題は、私はcheckbox
の:checked
ステータスを取得しようとしたときに表示されます。
$('.transactionSheetToolbarShowDraft').click(function() {
var checkbox = $(this).find('input[type="checkbox"]');
if (checkbox.is(':checked')) {
console.log('is checked!');
} else {
console.log('not checked...');
}
});
:checked
ステータスが反対のようです!私はいくつかのデバッグを行い、問題を追跡しました。この背景には、label
がクリックされ、そのclick
イベントが発生したため、checkbox
はまだ更新されていません。基本的にchange
イベントハンドラが、checkbox
がチェックされた状態を更新する前に呼び出されました。 は絶望的なので、私は以下のハックを思い付いた:
$('.transactionSheetToolbarShowDraft').click(function() {
var checkbox = $(this).find('input[type="checkbox"]');
setTimeout(function() {
if (checkbox.is(':checked')) {
console.log('is checked!');
} else {
console.log('not checked...');
}
}, 10);
});
これは、イベントを処理するsetTimeout
calll持つことを除いて...動作しているようですが、それは間違いなく良い方法ではありません。
誰かがこれに対してより良い解決策を持っているかどうかを確認したいだけですか?または私は何か間違っているのですか?
思った....しかし、それはないなぜ私にはわからないように、あなたの最初の試みは、実際にhttps://jsfiddle.net/r18r7znv/ – jackjop
を取り組んでいます。..私はいくつかの必要な図書館を見逃しているかもしれませんか? ブートストラップCSS、ブートストラップjs、jquery jsファイルが含まれていることを確認しました... – user2526586