102 lines
4.5 KiB
Markdown
102 lines
4.5 KiB
Markdown
|
---
|
|||
|
title: Click Method
|
|||
|
localeTitle: Метод Click
|
|||
|
---
|
|||
|
# Метод Click
|
|||
|
|
|||
|
Метод jQuery Click запускает функцию при нажатии элемента. Эта функция известна как «обработчик», потому что она обрабатывает событие click. Функции могут влияют на элемент HTML, привязанный к клику, используя метод jQuery Click, или они могут полностью изменить что-то еще. Наиболее часто используемая форма:
|
|||
|
|
|||
|
```javascript
|
|||
|
$("#clickMe").click(handler)
|
|||
|
```
|
|||
|
|
|||
|
Метод click использует функцию обработчика в качестве аргумента и выполняет его каждый раз, когда `#clickMe` элемент `#clickMe` . Функция обработчика получает параметр, известный как [eventObject,](http://api.jquery.com/Types/#Event) который может быть полезен для управления действием.
|
|||
|
|
|||
|
#### Примеры
|
|||
|
|
|||
|
Этот код показывает предупреждение, когда пользователь нажимает кнопку:
|
|||
|
|
|||
|
```html
|
|||
|
|
|||
|
<button id="alert">Click Here</button>
|
|||
|
```
|
|||
|
|
|||
|
```javascript
|
|||
|
$("#alert").click(function () {
|
|||
|
alert("Hi! I'm an alert");
|
|||
|
});
|
|||
|
```
|
|||
|
|
|||
|
[jsFiddle](https://jsfiddle.net/pL63cL6m/)
|
|||
|
|
|||
|
[EventObject](http://api.jquery.com/Types/#Event) имеет некоторые встроенные методы, в том числе `preventDefault()` , который делает именно то, что он говорит, - останавливается событие по умолчанию для элемента. Здесь мы помещаем якорный тег в качестве ссылки:
|
|||
|
|
|||
|
```html
|
|||
|
|
|||
|
<a id="myLink" href="www.google.com">Link to Google</a>
|
|||
|
```
|
|||
|
|
|||
|
```javascript
|
|||
|
$("#myLink").click(function (event) {
|
|||
|
event.preventDefault();
|
|||
|
});
|
|||
|
```
|
|||
|
|
|||
|
[jsFiddle](https://jsfiddle.net/dy457gbh/)
|
|||
|
|
|||
|
#### Дополнительные способы воспроизведения с помощью метода click
|
|||
|
|
|||
|
Функция обработчика также может принимать дополнительные данные в виде объекта:
|
|||
|
|
|||
|
```javascript
|
|||
|
jqueryElement.click(usefulInfo, handler)
|
|||
|
```
|
|||
|
|
|||
|
Данные могут быть любого типа.
|
|||
|
|
|||
|
```javascript
|
|||
|
$("element").click({firstWord: "Hello", secondWord: "World"}, function(event){
|
|||
|
alert(event.data.firstWord);
|
|||
|
alert(event.data.secondWord);
|
|||
|
});
|
|||
|
```
|
|||
|
|
|||
|
Вызов метода click без функции обработчика запускает событие click:
|
|||
|
|
|||
|
```javascript
|
|||
|
$("#alert").click(function () {
|
|||
|
alert("Hi! I'm an alert");
|
|||
|
});
|
|||
|
|
|||
|
$("#alert").click();
|
|||
|
```
|
|||
|
|
|||
|
Теперь, всякий раз, когда страница загружается, событие click будет срабатывать, когда мы вводим или перезагружаем страницу и показываем назначенное предупреждение.
|
|||
|
|
|||
|
Также вы должны использовать .on ('click', ...) над .click (...), потому что первый может использовать меньше памяти и работать для динамически добавленных элементов.
|
|||
|
|
|||
|
[jsFiddle](https://jsfiddle.net/gspk6gxt/)
|
|||
|
|
|||
|
#### Распространенные ошибки
|
|||
|
|
|||
|
Событие click привязывается только к элементам, находящимся в настоящее время на DOM во время привязки, поэтому любые добавленные впоследствии элементы не будут связаны. Чтобы связать все элементов в DOM, даже если они будут созданы позднее, используйте метод `.on()` .
|
|||
|
|
|||
|
Например, этот пример метода click:
|
|||
|
|
|||
|
```javascript
|
|||
|
$( "element" ).click(function() {
|
|||
|
alert("I've been clicked!");
|
|||
|
});
|
|||
|
```
|
|||
|
|
|||
|
Можно изменить это на примере метода:
|
|||
|
|
|||
|
```javascript
|
|||
|
$( document ).on("click", "element", function() {
|
|||
|
alert("I've been clicked!");
|
|||
|
});
|
|||
|
```
|
|||
|
|
|||
|
#### Дополнительная информация:
|
|||
|
|
|||
|
Для получения дополнительной информации посетите [официальный сайт](https://api.jquery.com/click/#click) .
|