twitterのブートストラップでは、アクティブでないときにボタンをデフォルトの色にする方法を探していました。ボタンがアクティブになったら、そのボタンの色を変更したいと思っていました。私は提供されたjsファイルでそれを行う方法を見ました。私はこれを処理するための小さなスクリプトを書くことを終了しました。アクティブ時のTwitter Bootstrapボタンクラスの切り替え
14
A
答えて
21
ボタンに属性としてclass-toggle
を追加すると、ボタンを押した後に移動したい項目と同じになり、次のjQueryを追加すると、上記の結果が得られます。
$('.btn-group > .btn, .btn[data-toggle="button"]').click(function() {
if($(this).attr('class-toggle') != undefined && !$(this).hasClass('disabled')){
var btnGroup = $(this).parent('.btn-group');
if(btnGroup.attr('data-toggle') == 'buttons-radio') {
btnGroup.find('.btn').each(function() {
$(this).removeClass($(this).attr('class-toggle'));
});
$(this).addClass($(this).attr('class-toggle'));
}
if(btnGroup.attr('data-toggle') == 'buttons-checkbox' || $(this).attr('data-toggle') == 'button') {
if($(this).hasClass('active')) {
$(this).removeClass($(this).attr('class-toggle'));
} else {
$(this).addClass($(this).attr('class-toggle'));
}
}
}
});
あなたにもそれは同じように動作ボタングループでそれをしたい場合は、ボタンが
<button class="btn" data-toggle="button" class-toggle="btn-inverse">Single Toggle</button>
ようになります。グループの各ボタンにclass-toggle
を追加するだけです。
UPDATE
私が変更され、クラスであなたのボタンを起動するときに良好な応答を持っている要旨を作成しました。 Toggle Twitter Bootstrap Classes
UPDATE
私はあなたがアクティブなラジオボタン
3
をクリックしたときに私はあなたのコードを編集した表示されるバグを修正するための変更を行いました。あなたのコードでアクティブな状態をクリックすると、すべてが壊れてしまいます。これを防ぐためのif文を少し追加しました。あとで修正が必要な場合にはちょっと寄付。コードでうまく動作します。
$('.btn-group > .btn, .btn[data-toggle="button"]').click(function() {
var buttonClasses = ['btn-primary','btn-danger','btn-warning','btn-success','btn-info','btn-inverse'];
var $this = $(this);
if ($(this).attr('class-toggle') != undefined && !$(this).hasClass('disabled')) {
var btnGroup = $this.parent('.btn-group');
var btnToggleClass = $this.attr('class-toggle');
var btnCurrentClass = $this.hasAnyClass(buttonClasses);
if(btnToggleClass!='false'&&btnToggleClass!='btn') {
if (btnGroup.attr('data-toggle') == 'buttons-radio') {
var activeButton = btnGroup.find('.btn.active');
var activeBtnClass = activeButton.hasAnyClass(buttonClasses);
activeButton.removeClass(activeBtnClass).addClass(activeButton.attr('class-toggle')).attr('class-toggle',activeBtnClass);
$this.removeClass(btnCurrentClass).addClass(btnToggleClass).attr('class-toggle',btnCurrentClass);
}
if (btnGroup.attr('data-toggle') == 'buttons-checkbox' || $this.attr('data-toggle') == 'button') {
$this.removeClass(btnCurrentClass).addClass(btnToggleClass).attr('class-toggle',btnCurrentClass);
}
}
}
});
$.fn.hasAnyClass = function(classesToCheck) {
for (var i = 0; i < classesToCheck.length; i++) {
if (this.hasClass(classesToCheck[i])) {
return classesToCheck[i];
}
}
return false;
敬具別のブートストラップの恋人
12
私は、任意のJSが本当に必要であると、考えていません。 私はこれが完全にCSSでとdata
という属性とすることができると信じています。
はい、少しのCSSの複製が含まれますが、ときどきglitchy javascriptよりも優れています。
;(ように色が「主」、「成功」、既存のクラスから取得され、かつ読みやすくするため1の例)すべてのクラス用のカスタムCSSを追加し、データがボタンに
data-active-class
属性追加.btn.active[data-active-class="primary"] { color: #fff; background-color: #286090; border-color: #204d74; }
非アクティブボタンは、いつものようにdata-*
に基づいてアクティブをレンダリングしますこの^^ CSSによって属性がレンダリングされます。
編集:SASSを使用して以下の場合は 色は/問題を複製を解決している...すでにブートストラップによって定義された変数から使用する必要がありますすることができます。
関連する問題
- 1. Twitter Bootstrapカルーセル - FirefoxでのCSSの切り替え
- 2. BlueprintからTwitter Bootstrapへの切り替え
- 3. Twitter Bootstrap:チェックボックスのようなボタングループのアクティブ状態を削除/切り替えます
- 4. 2つの画像の切り替え時の切り替え
- 5. Bootstrap - JqueryでDivを切り替える
- 6. StringIndexOutOfBoundsExceptionページ切り替え時
- 7. クリック時のdivコンテンツの切り替え
- 8. JavaScript:リンクをアクティブ/非アクティブに切り替える
- 9. NullPointerExceptionビュー間の切り替え時
- 10. トグル切り替え時のアラート
- 11. animation:切り替え時の遷移
- 12. jQueryクラスの切り替えとクッキーの値の切り替え?
- 13. Twitterのストリームを切り替える方法
- 14. メニューの切り替えの切り替え
- 15. 他のビューの切り替えに切り替えるapp xcode
- 16. 子コンポーネントの間でアクティブなクラスを切り替えるVueJS
- 17. 子アイテムの間で「アクティブ」クラスを切り替えるvueJS.2
- 18. ナビゲーションタブのアクティブなCSSクラスを切り替えます
- 19. 進行状況バーのテキストを並べ替える(Twitter Bootstrap/DataTables)
- 20. 切り替え
- 21. 切り替え
- 22. メニュークリック時に切り替えます
- 23. ボタンクリック時にグリッドサイズを切り替える
- 24. フォームロード時にjQueryを切り替える
- 25. iframeへの切り替え方法/切り替え方法
- 26. 特定のCSSの切り替え
- 27. Visual Studio 2008はソリューションでアクティブなプロジェクトを切り替えます
- 28. LandScapeモードに切り替えた場合でも、非アクティブ化
- 29. asp.net razorでアクティブなクラスを切り替えるには?
- 30. SVN:チェックアウトされたリポジトリでアクティブなユーザを切り替える
要点をありがとう!ただし、ラジオボタンの場合、同じボタンを2回クリックするとグリッチが表示されます。 – Kalzem
@BabyAzertyこれを修正するために更新しました。最後の更新を参照してくださいまたはhttp://jsfiddle.net/W9hUr/120/ – bretterer
こんにちは、このポストをありがとうございます。ただし、ボタンに2番目のクリックイベントを割り当てることはできません(スクリプトの後半)。このケースを処理するためのプロッパーの方法はありますか、ボタングループ/ボタンでクラスを切り替える必要があるたびに関数を呼び出す必要がありますか? – mffap