Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 24.09.2017
Сообщений: 5
1

JS, HTML. Имитация пользовательского события click

24.09.2017, 17:58. Показов 2893. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть блок пагинации HTML. Нужно раз в 12 секунд имитировать нажатие кнопки "следующие" скриптом JS.
HTML5
1
2
3
4
5
6
7
8
9
10
11
<div class="pagination" style="display:inline-block; width:100%;">
<a class="prev page-numbers" href="#page=2">Предыдущие</a>
<a class="page-numbers" href="">1</a>
<a class="page-numbers" href="#page=2">2</a>
<span class="page-numbers current">3</span>
<a class="page-numbers" href="#page=4">4</a>
<a class="page-numbers" href="#page=5">5</a>
<span class="page-numbers dots"></span>
<a class="page-numbers" href="#page=7">7</a>
<a class="next page-numbers" href="#page=1">следующие</a>
</div>
Также JS:
Javascript
1
2
3
4
5
6
7
8
9
10
(function () {
    function foo(){
        var nextPage = document.getElementsByClassName('pagination')[0]; //Из массива получить первый и единственный элемент
        nextPage = nextPage.lastElementChild; // Получить последний элемент ссылку
        alert(nextPage.innerHTML); // (для теста) выводит "следующие" - всё правильно.
        var clickEvent = new Event( 'click' ); // Create the event.
        nextPage.dispatchEvent(clickEvent); // Здесь, по идее, должна происходить имитация. Но её нет.
    }
    setInterval(foo, 12000); //Раз в 12 секунд вызов функции foo();
})();
Возможно, подскажите что не так в JS. Почему не происходит вызова события click для элемента
HTML5
1
<a class="next page-numbers" href="#page=1">следующие</a>
?
P.S. В плане синтаксиса всё правильно. Код рабочий. Просто я не улавливаю ошибку в логике.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2017, 17:58
Ответы с готовыми решениями:

Обработка события Click, вставка html после генерации и обработка этого кода
Подскажите пожалуйста как заставить работать эту часть кода 18 строка ...

Имитация события MouseDown из события KeyDown
Нужно эмитировать событие MouseDown из события KeyDown. и событие MouseUp из события KeyUp. Чтобы...

Не работает событие click у кнопки пользовательского элемента управления
Сделал Я себе кнопку из пользовательского элемента управления, но когда я добавляю её на форму и...

Привязка события click
Здравствуйте. консоль показывает ошибку sortField.onclick is not a function, когда пытаюсь...

5
12 / 11 / 10
Регистрация: 22.10.2016
Сообщений: 30
24.09.2017, 19:29 2
Лучший ответ Сообщение было отмечено Misha Khripko как решение

Решение

Не знаю, зачем городить такой огород, если у "следующие" есть тоже свой класс, но...
Javascript
1
nextPage.click();
прекрасно отрабатывает клик.
2
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
24.09.2017, 19:31 3
Лучший ответ Сообщение было отмечено Misha Khripko как решение

Решение

Можно короче:
Javascript
1
setInterval(function(){document.querySelector(".next").click()}, 12000);
2
0 / 0 / 0
Регистрация: 24.09.2017
Сообщений: 5
24.09.2017, 21:05  [ТС] 4
Класс есть, но он не уникальный на странице, в отличии от pagination.
____
Ответ двоим комментаторам выше.
Javascript
1
setInterval(function(){document.querySelector(".next").click()}, 12000);
- вообще круто, но если бы была уникальность класс next, там нужно еще несколько проверок сделать и читабельность совсем упадёт.
0
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
24.09.2017, 21:17 5
Misha Khripko, что мешает сделать так? Не нужны там никакие проверки, можно сразу указать нужный элемент DOM
Javascript
1
 setInterval(function(){document.querySelector("div.pagination>a.next").click()}, 12000);
1
0 / 0 / 0
Регистрация: 26.10.2015
Сообщений: 10
24.09.2017, 21:19 6
Блин, верно) опыт мешает.
0
24.09.2017, 21:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2017, 21:19
Помогаю со студенческими работами здесь

Всплытие события click
Растолкуйте пожалуйста пример. Если нажать кнопку на главном окне .container, то внутри .container...

Реализация пользовательского события
как мне реализовать метод который например по нажатию клавиши пользователем, неважно в каком...

Создание пользовательского события
Добрый день. На странице находится элемент &lt;div id=&quot;#myDiv&quot; class=&quot;someClass&quot;&gt;&lt;/div&gt; Нужно...

Имитация события
Хочу из QGraphicsView::mousePressEvent эмитировать событие MainWindow::mousePressEvent, передавая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru