JavaScript click () - не работает более одного раза

-2

Я хочу добавить автопрокрутку к изображениям заголовков здесь: https://listify-demos.astoundify.com/classic/listing/the-drake-hotel/

Итак, document.querySelector('.slick-next').click(); может сделать щелчок, и я пытаюсь заставить его работать в цикле. Выполнение следующего в консоли JS:

function myscroller() {
    document.querySelector('.slick-next').click();
}

for (var i = 1; i < 10; ++i) {
    myscroller();
}

Я думал, что он должен нажать следующую кнопку 10 раз, но он нажимает ее только один раз. Что мне не хватает?

  • 0
    Что должен делать «клик» в вашем случае? У вас есть пример кода?
  • 0
    Он нажимает правую кнопку в слайдере. «>» Вещь.
Показать ещё 4 комментария
Теги:

2 ответа

-5
Лучший ответ

Вообще говоря, страница только перерисовывается после выполнения потока. Вероятно, вы обнаружите, что ваша функция эмулирует 10 кликов, а затем перерисовывает страницу/выполняет анимацию в конце всего этого. Попробуйте использовать window.setTimeout() чтобы каждый щелчок выделил отдельный процесс:

for (var i = 1; i < 10; ++i) {
    window.setTimeout(myscroller, i * 100); // each click 0.1 seconds apart
}

Я не тестировал это, но я думаю, что в качестве альтернативы jQuery справляется с этим достаточно хорошо - если вы скажете ему эмулировать несколько событий подряд, он фактически ждет завершения каждого из них, прежде чем перейти к следующему:

jQuery('#my_element').click().click().click() // etc

Если вы попробуете такой подход, мне было бы интересно услышать, если это сработало :)

  • 5
    JQuery не делает то, что вы описываете.
  • 1
    Ну, я сказал, что это не было проверено. Понижающее голосование кажется довольно резким, вы должны найти, что первый вариант в моем ответе работает должным образом ... кстати, @bugnumber9 вы можете обнаружить, что ваш цикл выполняется только 9 раз, когда вы используете ++i вместо i++ поэтому он увеличивается это до 2 до первой итерации.
Показать ещё 2 комментария
-2

За то, что я понимаю в вашем посте. Если кнопка нажата, она будет действовать 10 раз вправо? (correct me if я am wrong). Попробуйте это.

function myscroller()
{
alert("Click Loop");
}
$("#btn").click(function(){
loopbtn();
});
function loopbtn(){
for (var i = 0; i < 10; ++i) {
myscroller();
}
}
<script src="/jquery.min.js"></script>


<input type="button" id="btn" value="Click me">
  • 0
    На listify-demos.astoundify.com/classic/listing/the-drake-hotel, когда я нажимаю следующую кнопку («>» на слайдере) - она прокручивает одно изображение. Я хочу выполнить несколько кликов с помощью JS, чтобы это выглядело как автоматическая прокрутка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню