avevo bisogno di fare la stessa cosa per un grafico in cui è possibile selezionare il periodo dei dati che dovrebbe essere visualizzato.
Perciò ho introdotto la classe CSS 'btn-gruppo-radio' e utilizzato il seguente JavaScript discreto uno-liner:
// application.js
$(document).ready(function() {
$('.btn-group-radio .btn').click(function() {
$(this).addClass('active').siblings('.btn').removeClass('active');
});
});
E qui è il codice HTML:
<!-- some arbitrary view -->
<div class="btn-group btn-group-radio">
<%= link_to '1W', charts_path('1W'), class: 'btn btn-default active', remote: true %>
<%= link_to '1M', charts_path('1M'), class: 'btn btn-default', remote: true %>
<%= link_to '3M', charts_path('3M'), class: 'btn btn-default', remote: true %>
<%= link_to '6M', charts_path('6M'), class: 'btn btn-default', remote: true %>
<%= link_to '1Y', charts_path('1Y'), class: 'btn btn-default', remote: true %>
<%= link_to 'All', charts_path('all'), class: 'btn btn-default', remote: true %>
</div>
Una versione leggermente concisa e ottimizzata (nessuna doppia chiamata al selettore): $ (this) .addClass ('active'). Siblings(). RemoveClass ('active'); – Nick
questo non funziona con il pulsante di opzione. come specificare quale è quale se ogni pulsante di opzione fa una cosa diversa –
@MurhafSousli Non sono sicuro di aver compreso il problema.Se inserisci il tuo codice dove inserisco '// TODO', dovresti essere in grado di accedere al pulsante di scelta appena selezionato come' $ (this) '. –