Spec-Zone.ru › jQuery

событие mouseout

Свяжите обработчик событий с событием "mouseout" или вызовите это событие на элементе.

Содержание:

  • .on( "mouseout" [, eventData ], handler )
    • .on( "mouseout" [, eventData ], handler )
  • .trigger( "mouseout" )
    • .trigger( "mouseout" )

.on( "mouseout" [, eventData ], handler )Возвращает: jQuery

Описание: Связывает обработчик событий с событием "mouseout".

  • версия добавлена: 1.7.on( "mouseout" [, eventData ], handler )

    • "mouseout"
      Тип: строка
      Строка "mouseout".
    • eventData
      Тип: Любое
      Объект, содержащий данные, которые будут переданы обработчику событий.
    • handler
      Тип: Функция( Event eventObject )
      Функция, которая выполняется каждый раз, когда событие срабатывает.

Эта страница описывает событие mouseout. Для устаревшего метода .mouseout(), см. .mouseout().

Событие mouseout отправляется элементу, когда указатель мыши покидает элемент. Это событие может получить любой HTML-элемент.

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

<div id="outer">
  Outer
  <div id="inner">
    Inner
  </div>
</div>
<div id="other">
  Trigger the handler
</div>
<div id="log"></div>
Рисунок 1 - Иллюстрация рендеренного HTML

Обработчик событий может быть привязан к любому элементу:

$( "#outer" ).on( "mouseout", function() {
  $( "#log" ).append( "Handler for `mouseout` called." );
} );

Теперь, когда указатель мыши выходит за пределы Outer <div>, сообщение добавляется в <div id="log">. Чтобы вызвать событие вручную, используйте .trigger( "mouseout" ):

$( "#other" ).on( "click", function() {
  $( "#outer" ).trigger( "mouseout" );
} );

После выполнения этого кода щелчки по Trigger the handler также будут добавлять сообщение.

Этот тип события может вызывать много проблем из-за "пузырения" событий. Например, когда указатель мыши выходит из элемента Inner в этом примере, событие mouseout будет отправлено туда, а затем "поднимется" до Outer. Это может инициировать вызов связанного обработчика mouseout в неудачное время. Посмотрите обсуждение для .mouseleave() для полезной альтернативы.

Пример:

Показать количество срабатываний событий mouseout и mouseleave. mouseout срабатывает, когда указатель выходит из дочернего элемента, а mouseleave срабатывает только когда указатель выходит из связанного элемента.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>on demo</title>
  <style>
  div.out {
    width: 40%;
    height: 120px;
    margin: 0 15px;
    background-color: #d6edfc;
    float: left;
  }
  div.in {
    width: 60%;
    height: 60%;
    background-color: #fc0;
    margin: 10px auto;
  }
  p {
    line-height: 1em;
    margin: 0;
    padding: 0;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<div class="out overout">
  <p>move your mouse</p>
  <div class="in overout"><p>move your mouse</p><p>0</p></div>
  <p>0</p>
</div>
 
<div class="out enterleave">
  <p>move your mouse</p>
  <div class="in enterleave"><p>move your mouse</p><p>0</p></div>
  <p>0</p>
</div>
 
<script>
var i = 0;
$( "div.overout" )
  .on( "mouseout", function() {
    $( "p", this ).first().text( "mouse out" );
    $( "p", this ).last().text( ++i );
  } )
  .on( "mouseover", function() {
    $( "p", this ).first().text( "mouse over" );
  } );
 
var n = 0;
$( "div.enterleave" )
  .on( "mouseenter", function() {
    $( "p", this ).first().text( "mouse enter" );
  } )
  .on( "mouseleave", function() {
    $( "p", this ).first().text( "mouse leave" );
    $( "p", this ).last().text( ++n );
  } );
</script>
 
</body>
</html>

Демо:

.trigger( "mouseout" )Возвращает: jQuery

Описание: Вызвать событие "mouseout" на элементе.

  • версия добавлена: 1.0.trigger( "mouseout" )

    • "mouseout"
      Тип: строка
      Строка "mouseout".

См. описание для .on( "mouseout", ... ).

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

Spec-Zone.ru

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