【发布时间】:2019-05-03 19:35:11
【问题描述】:
我想要的是让 div 元素四处移动,直到再次单击它,然后它应该停在当前位置。是否有特定的方法来监听事件中的同一事件?移动 div 不是问题。我只是不知道如何让它停止。谁能向我解释为什么我所拥有的东西不起作用?
var clickTracker = false;
$("#div3").click(function() {
if(clickTracker === false){
var width = $(window).width();
var height = $(window).height();
for(var i = 0; i < 1000; i++){
const randomLeft = Math.floor(Math.random() * (width - 200))-1;
const randomHeight = Math.floor(Math.random() * (height - 200))-1;
$("#div3").animate({left: '+='+randomLeft}, 500).animate({top: '+='+randomHeight}, 500);
$("#div3").click(function() {
clickTracker = true;
break;
});
}
}
else{
clickTracker = false;
}
});
【问题讨论】:
-
你没有试图在任何地方停止动画。
-
但是不应该跳出循环停止动画吗?我认为问题出在这个块上,它永远不会打破循环,因此动画永远不会结束。 $("#div3").click(function() { clickTracker = true; break; });
标签: javascript events event-handling click jquery-animate