我正在尝试在JS中创建一个类方法,其中一个动作必须只重复一次。该方法是循环调用,我希望它方法移动一个字符并停止。但是click事件会重复很多次,所以角色移动了大约40次,当我尝试使用jQuery“one()”时它不起作用,它也是一样的。
这就是我的函数(在永久循环中调用):
Player.prototype.pushBox = function() {
$(".box").click(function() { // The 'one()' doesn't resolve anything
console.log('coucou'); // This is printing 40 times
for (var i = 0; i < boxArray.length; i++) {
var box = boxArray[i];
if (box.id == player.id + moveHorizontal) {
$("#tile" + box.id).addClass('ground');
box.x += boxSize;
box.id += moveHorizontal;
player.x += boxSize; // So this is called 40 times
player.id += moveHorizontal;
}
}
});
}
答案 0 :(得分:0)
也许你有40个带有“box”类的对象,即使你使用了一个(),也会触发点击事件40次
$(".box").one('click', function() {
console.log('sss');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box"><div class="box"><div class="box">click</div></div></div>