Как имитировать клик по кнопке js
Перейти к содержимому

Как имитировать клик по кнопке js

  • автор:

HTMLElement.click()

Метод HTMLElement.click() имитирует клик мышкой по элементу.

Syntax

element.click()

Спецификации

Specification
HTML Standard
# dom-click-dev

Совместимость с браузерами

BCD tables only load in the browser

Help improve MDN

Was this page helpful to you?
Learn how to contribute. This page was last modified on 3 авг. 2023 г. by MDN contributors.

  • MDN on Mastodon
  • MDN on X (formerly Twitter)
  • MDN on GitHub
  • MDN Blog RSS Feed

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.

как сделать нажатие на кнопку js

Для имитации нажатия на кнопку в JavaScript можно использовать метод click() . Этот метод вызывает событие «click» на элементе, на который он был вызван.

 id="myButton">Нажми меня 
const button = document.getElementById('myButton'); // имитируем нажатие на кнопку button.click(); 

В этом примере мы получаем кнопку по ее id, а затем вызываем метод click() на этой кнопке. Это приведет к тому, что будет имитировано нажатие на кнопку.

Обратите внимание, что этот метод может вызвать обработчик события «click» на кнопке, но он не сработает, если кнопка заблокирована (например, атрибутом disabled ) или если обработчик события «click» был удален.

Важно сказать, что событие, вызванное методом click() , будет иметь те же свойства и методы, что и нативное событие ( target , currentTarget , preventDefault() , stopPropagation() ), но имеет некоторые ограничения. Например, может не сработать проверка на долгое нажатие.

Как имитировать нажатие средней кнопки мыши с помощью js?

dmitry_luzanov

Азат Киберов, все работает. Подпишитесь на событие и смотрите:

const myElement = document.querySelector(".button") setInterval(function()< const middleClick = new MouseEvent("click", < "button": 1, "which": 1 >); myElement.dispatchEvent(middleClick); >, 4000) myElement.addEventListener("click", e => console.log(e))

dmitry_luzanov

Дмитрий Лузанов @dmitry_luzanov

mbxngtgo

Азат Киберов @mbxngtgo Автор вопроса
А как сделать чтобы открывалось в фоновой вкладке?

dmitry_luzanov

Дмитрий Лузанов @dmitry_luzanov

Азат Киберов, так это совсем другая история. Клик колеса тут играет лишь роль удобства в браузере, но никак не является частью API.

Можно сделать так, но браузер скорее всего заблокирует всплывающее окно. И вообще, не нужно делать решения за пользователя, это только ухудшит UX.

const newTab = window.open("https://google.com", "_blank"); newTab.focus();

Курсы javascript

Во-первых, проблема в том, что $(document).ready( ) у вас стоит внутри условия, а должна быть непосредственно в теле тега script.
Получается, что есть какое-то условие (которое вы не полностью дали), которое судя по всему выполняется по нажатию кнопки. Вот и получается, что сначала, после первого клика, объявляется функция, которая внутри $(document).ready() написана, а потом, после второго, она выполняется.
Если непонятно, что нужно исправить, то дайте хотя бы побольше кода. )

10.09.2015, 13:35
Новичок на форуме
Регистрация: 10.09.2015
Сообщений: 2

(function( $ ) < $(function() < $('.rf').each(function()< var form = $(this), btn = form.find('.btn_submit'); form.find('.rfield').addClass('empty_field'); function checkInput()< form.find('.rfield').each(function()< if($(this).val() != '')< $(this).removeClass('empty_field'); >else < $(this).addClass('empty_field'); >>); > function lightEmpty()< form.find('.empty_field').css(); setTimeout(function()< form.find('.empty_field').removeAttr('style'); >,500); > setInterval(function() < checkInput(); var sizeEmpty = form.find('.empty_field').size(); if(sizeEmpty >0) < if(btn.hasClass('disabled'))< return false >else < btn.addClass('disabled') >> else < btn.removeClass('disabled') >>,500); btn.click(function() < if($(this).hasClass('disabled'))< lightEmpty(); return false >else < $(document).ready( function() < $('#spisok >input').click(function () < $('#container >div').hide(); var i=$(this).data('id'); $('#d'+i).fadeIn(); >); > ); > >); >); >); >)( jQuery );

10.09.2015, 18:28
Регистрация: 06.09.2015
Сообщений: 61

То, что вы предоставили ни разу не работает. ))
Остается только догадываться, где элементы с классами rf, rfield и с ИД container, d1 находятся и как они должны взаимодействовать.
Весь JS — это хорошо, но когда нет HTML, то это становится похожим на прочтение инструкции по эксплуатации с кучей неизвестных терминов без самого устройства, которое собираемся эксплуатировать.

Например это:
$(‘.rf’).each(function() var form = $(this),

Понятно, что перебирает все элементы с классом rf и потом присваивает их поочередно переменной form.
Много форм на странице?
Так может проще сделать onsumit для форм (возможно это значительно сократит код), чем отслеживать клик по кнопке в такое большой лесенке функций?

Так же непонятно зачем сделано это:
Обработчик клика по кнопке
btn = form.find(‘.btn_submit’);
btn.click(function()

А внутри него вставлен еще один обработчик клика по ней же:

Давайте-ка весь код или ссылку на страницу.

10.09.2015, 23:50
Регистрация: 29.11.2011
Сообщений: 3,924

Сперва они имитируют клик, затем болезнь, а потом оргазм имитировать начнут

Чувствовать его нужно, чувствовать! Я про клик, конечно

__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина — самый громкий звук

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *