Как я могу предварительно переключить кнопку в Bootstrap btn-group?

Как я могу развернуть группу Radio Button и сделать одну из кнопок, предварительно переключенных?

У меня есть группа кнопок с днями недели. Это:

<div class="btn-group" data-toggle="buttons-radio">
  <button class="btn" id="test0">Mon</button>
  <button class="btn" id="test1">Tue</button>
  <button class="btn" id="test2">Wed</button>
  <button class="btn" id="test3">Thu</button>
  <button class="btn" id="test4">Fri</button>
  <button class="btn" id="test5">Sat</button>
  <button class="btn" id="test6">Sun</button>
</div>

Мне нужно получить текущее значение дня (используя var currentDay = new Date().getDay()) и toggle (активировать) соответствующую кнопку в группе.

И я пытаюсь переключить его со следующим кодом (только в целях тестирования):

$("#test0").button('toggle')

Это не работает.

Ответ 1

Вы можете использовать класс bootstraps .btn.active и просто добавить его к кнопке, которую хотите перенести, и вы можете использовать jQuerys toggleClass, чтобы развязать кнопок. Демо.


Только что заметил, что твиттер имеет кнопку script, которую вы можете вызвать для этого эффекта, вот фиксированная демонстрация с ожидаемыми результатами.


Посмотрев на то, что вы действительно хотели от комментария, я обновил свою скрипку с результатами, которые вы ищете.

Я добавил функцию, которая тянет текущий день с помощью метода javascripts getDay из массива и переключает соответствующий день в группе кнопок, задавая идентификатор кнопки: demo

Соответствующий код:

JS

function today() {
    var arr = ["0", "1", "2", "3", "4", "5", "6"]; //first day of the week is sunday and its index is 0
    var currentDay = new Date().getDay();

    return (arr[currentDay]);
}

var day = '[id="test' + today() +'"]'; // we take the current day from the array and add the beginning of the class name and save it in a variable

$(day).button('toggle');

Ответ 2

Я попробовал это, но хотел только HTML/CSS-решение.

Я нашел, что фокус-подход будет работать для Bootstrap 3. Обратите внимание, что автофокус является атрибутом HTML5.

<div class="btn-group">
      <button class="btn" id="test0" autofocus="true">Mon</button>
      <button class="btn" id="test1">Tue</button>
      <button class="btn" id="test2">Wed</button>
      <button class="btn" id="test3">Thu</button>
      <button class="btn" id="test4">Fri</button>
      <button class="btn" id="test5">Sat</button>
      <button class="btn" id="test6">Sun</button>
</div>

Я нахожу Bootply легче для скриптов с Bootstrap.
Вот мой тест bootply: http://www.bootply.com/cSntVlPZtU

Ответ 3

Я столкнулся с той же проблемой, но хотел получить более простое решение. Я заметил, что добавление "активного" в класс не решает проблему, поскольку оно как-то удалено (я не исследовал, почему он это делает).

Решение добавляет к классу "активный активный". Таким образом, только один удаляется, а другой обходит магию, которая происходит позади. Это действительно грязное решение, но оно решает проблему. Надеюсь, это поможет!

Ответ 4

просто олицетворяйте нажатие кнопки на загрузку страницы:

$( "# buttonid" ) триггер ("click").

Работала для меня на другой аналогичной стандартной кнопке, которую я хотел показать, поскольку нажимал на загрузку страницы - действие кнопки было необходимо для установки отображения таблицы по умолчанию, которое я хотел отобразить. Другие кнопки предоставляют разные виды, но по умолчанию отображаются все данные.