Я новичок в изучении jQuery, поэтому какое-то время я был озадачен этим (и извините, если мой вопрос очень очевиден).
Когда пользователь загружает сайт, я хочу, чтобы экран непрерывно добавлял квадратные изображения каждые 5 секунд, пока они не нажмут кнопку «Нажми меня!». который останавливает это. Функция runForever, которая добавляет изображения, работает сама по себе, если я добавлю '$' перед '(function)', но внутри моей функции нажатия кнопки, runForever вообще не запускается. Я знаю, что он не запускается, потому что я добавил предупреждение, когда пользователь загружает страницу, но страница никогда не дает мне это утверждение. Это, однако, дает мне предупреждение, когда я нажимаю «Click Me!».
$(document).ready(function() {
(function runForever() {
(".img-box").append("<div class='img-from-other-class'</div>");
setTimeout(runForever, 5000);
});
var clicked = false;
$("button").click(function() {
if (clicked == false) {
alert ("beginning repetition");
runForever();
}
else {
alert ("button clicked");
clicked = true;
return;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div class="container">
<div class="row">
<div class="col-6">
<h3>jQuery Practice</h3>
</div>
<div class="col-6">
<button class="float-right">
Click Me
</button>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="img-box">
<div class="img-from-other-class"></div>
</div>
</div>
</div>
</div>
</body>