调用一次jQuery函数

Call a jQuery function once

本文关键字:一次 jQuery 函数 调用      更新时间:2023-12-08

我正试图在JS中创建一个类方法,其中一个操作只需重复一次。该方法是在循环中调用的,我希望它方法移动一个字符一次并停止。但是点击事件重复了很多次,所以角色移动了大约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;
            }
        }
    });
 }

也许你有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>

http://jsfiddle.net/g39dkn2t/1/