Перейти к содержанию

.mousedown()

Метод .mousedown() привязывает JavaScript обработчик событий "mousedown" (нажатие кнопки мыши на элементе), или запускает это событие на выбранный элемент.

Событие "mousedown" срабатывает при нажатии любой кнопки мыши, если Вам необходимо определить какая конкретно нажата кнопка, то вы можете воспользоваться свойством which объекта Event. Значению 1 соответствует левая кнопка, 2 - средняя кнопка и 3 для правой кнопки.

Если Вам необходимо задать событие, которое срабатывает, когда указатель мыши находится над элементом и кнопка мыши отпущена, то вы можете воспользоваться методом .mouseup().

Синтаксис

Синтаксис 1.0:

$(selector).mousedown() // метод используется без параметров
$(selector).mousedown(handler)
  • handler - Function( Event eventObject )

Синтаксис 1.4.3:

$( selector ).mousedown eventData, handler )
  • eventData - Anything
  • handler - Function( Event eventObject )

Метод .mousedown(), используемый вместе с функцией, переданной в качестве параметра (handler) является, короткой записью метода .on(), а без параметра является короткой записью метода .trigger():

$(selector).on('mousedown', handler)
$(selector).trigger('mousedown')

Добавлен в версии jQuery 1.0 (синтаксис обновлен в версии 1.4.3)

Параметры

eventData
Объект, содержащий данные, которые будут переданы в обработчик событий.
handler
Функция, которая будет выполнена каждый раз, когда событие срабатывает. Функция в качестве параметра может принимать объект Event.

Пример

<!DOCTYPE html>
<html>
  <head>
    <title>
      Использование jQuery метода .mousedown() (без параметров и с функцией)
    </title>
    <style>
      /* CSS стили */
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <script>
      $(document).ready(function() {
        $('button').click(function() {
          // задаем функцию при нажатиии на элемент <button>
          $('div').mousedown() // вызываем событие mousedown на элементе <div>
        })
        $('div').mousedown(function() {
          // задаем функцию при нажатии кнопки мыши на элементе <div>
          $('div').css('background', 'green') // изменяем цвет заднего фона
        })
        $('div').mouseup(function() {
          // задаем функцию, когда указатель мыши находится над элементом <div> и кнопка мыши отпускается
          $('div').css('background', 'red') // изменяем цвет заднего фона
        })
      })
    </script>
  </head>
  <body>
    <button>Клик</button>
    <div></div>
  </body>
</html>

В этом примере с использованием метода .mousedown() мы при нажатии на элемент <button> (кнопка) вызываем событие "mousedown" на элементе <div>. Самому элементу <div> задаем, что при срабатывании события "mousedown" на элементе выполнить функцию, которая с использованием метода .css() изменяет цвет заднего фона элемента. То есть мы вызываем событие .mousedown() либо при нажатии на кнопку, либо при нажатии кнопки мыши на элементе.

Кроме того, мы задаем функцию, когда указатель мыши находится над элементом и кнопка мыши отпускается (метод .mouseup()) и элементу <div> задаем красный цвет заднего фона.

Результат:

Пример использования jQuery метода .mousedown()

Пример использования jQuery метода .mousedown() (без параметров и с функцией)

В следующем примере мы рассмотрим пример в котором в зависимости от нажатой кнопки мыши будем выводить текстовое содержимое:

<!DOCTYPE html>
<html>
  <head>
    <title>
      Пример вызова события mousedown в зависимости от нажатой кнопки
    </title>
    <style>
      /* CSS стили */
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <script>
      $(document).ready(function() {
        $('div').mousedown(function(event) {
          // задаем функцию при нажатии кнопки мыши на элементе <div>
          switch (
            event.which // передаем свойсто
          ) {
            case 1: // если нажата левая кнопка (значение 1)
              $('div').text('Событие вызвано левой кнопкой мыши')
              break
            case 2: // если нажата средняя кнопка (значение 2)
              $('div').text('Событие вызвано средней кнопкой мыши')
              break
            case 3: // если нажата правая кнопка (значение 3)
              $('div').text('Событие вызвано правой кнопкой мыши')
              break
          }
        })
      })
    </script>
  </head>
  <body>
    <button>Клик</button>
    <div></div>
  </body>
</html>

В этом примере с использованием метода .mousedown() и свойства which объекта Event мы в зависимости от нажатия определенной кнопки выводим различное текстовое содержимое. Значению 1 соответствует левая кнопка, 2 - средняя кнопка и 3 для правой кнопки.

Результат:

Пример вызова события mousedown в зависимости от нажатой кнопки

Пример вызова события mousedown в зависимости от нажатой кнопки.