Я хочу добавить автопрокрутку к изображениям заголовков здесь: 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 раз, но он нажимает ее только один раз. Что мне не хватает?
Вообще говоря, страница только перерисовывается после выполнения потока. Вероятно, вы обнаружите, что ваша функция эмулирует 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
Если вы попробуете такой подход, мне было бы интересно услышать, если это сработало :)
++i
вместо i++
поэтому он увеличивается это до 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">