Spec-Zone.ru › jQuery

.toggle()

.toggle( handler, handler [, handler ] )Возвращает: jQueryверсия устарела: 1.8, удалена: 1.9

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

  • версия добавлена: 1.0.toggle( handler, handler [, handler ] )

    • handler
      Тип: Функция( Event eventObject )
      Функция, выполняемая каждый раз при чётном клике по элементу.
    • handler
      Тип: Функция( Event eventObject )
      Функция, выполняемая каждый раз при нечётном клике по элементу.
    • handler
      Тип: Функция( Event eventObject )
      Дополнительные обработчики, по которым происходит циклический переход после кликов.

Примечание: Эта сигнатура метода устарела в jQuery 1.8 и удалена в jQuery 1.9. jQuery также предоставляет метод анимации с именем .toggle(), который переключает видимость элементов. Вызывается ли анимация или метод события, зависит от переданного набора аргументов.

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

Например, рассмотрите HTML:

<div id="target">
  Click here
</div>

Обработчики событий затем могут быть связаны с <div>:

$( "#target" ).toggle(function() {
  alert( "First handler for .toggle() called." );
}, function() {
  alert( "Second handler for .toggle() called." );
});

По мере многократного нажатия на элемент сообщения чередуются:

Вызван первый обработчик для .toggle().
Вызван второй обработчик для .toggle().
Вызван первый обработчик для .toggle().
Вызван второй обработчик для .toggle().
Вызван первый обработчик для .toggle().

Если предоставлено более двух обработчиков, .toggle() будет циклически проходить по всем из них. Например, если есть три обработчика, то первый обработчик будет вызван при первом клике, четвёртом клике, седьмом клике и так далее.

Метод .toggle() предоставлен для удобства. Реализовать такое же поведение вручную относительно просто, и это может потребоваться, если ограничения, заложенные в .toggle(), окажутся слишком жёсткими. Например, .toggle() не гарантирует корректной работы, если применяется дважды к одному элементу. Поскольку .toggle() внутренне использует обработчик click, чтобы выполнить свою работу, мы должны отменить click, чтобы удалить поведение, прикреплённое к .toggle(), чтобы другие обработчики click не пострадали. Реализация также вызывает .preventDefault() на событии, поэтому ссылки не будут открываться, а кнопки не будут нажиматься, если .toggle() был вызван на элементе.

Пример:

Переключить стиль в ячейках таблицы. (Не рекомендуется. Используйте .toggleClass() вместо этого.):

$( "td" ).toggle(
  function() {
    $( this ).addClass( "selected" );
  }, function() {
    $( this ).removeClass( "selected" );
  }
);

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/toggle-event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API