取消绑定/关闭jquery中的函数

时间:2014-08-27 04:46:22

标签: javascript jquery

美好的一天,我正在尝试制作一个jquery游戏,在一群敌人被摧毁后,一群敌人会产卵。我打电话给alien_cruiser()功能&在minion_roulette()获得0之后解除绑定minion_roulette_counter函数。但每次运行时,函数都不会解除绑定&在计数器获得0后,两种类型的敌人都显示出来。我想逐个运行它们。以下是代码:

var sound = new Audio("sounds//dishoom.ogg");
var score = 0;
var minion_roulette_life = 10;
var cruiser_life = 20;
var minion_roulette_counter = 3;
var cruiser_counter = 3;

function processBullet() {
$(".projectile").each(function() {
    var maxTop = $(this).offset().top;
    var breakable1 = $(this).collision("#minion-roulette");
    var breakable2 = $(this).collision("#cruiser");
    $(this).css("top", maxTop - 25);

    if (breakable1.length != 0 || breakable2.length != 0) {
        $(this).remove();
    }

    if (maxTop <= 35) {
        $(this).remove();
    }

    if (breakable1.length != 0) {
        --minion_roulette_life;
        if (minion_roulette_life == 0) {
            sound.play();
            breakable1.remove();
            minion_roulette(true);
            minion_roulette_counter--;
            $("#score").html(++score);
            minion_roulette_life = 10;
        }
    }

    //This is the place where it checks if counter is 0 or not

    if (minion_roulette_counter == 0) {
        $('#content').unbind(function() {
            minion_roulette(false)
        });
        alien_cruiser(false);
        minion_roulette_counter = -1;
    }

    if (breakable2.length != 0) {
        --cruiser_life;
        if (cruiser_life == 0) {
            sound.play();
            breakable2.remove();
            alien_cruiser(true);
            $("#score").html(++score);
            cruiser_life = 20;
        }
    }
});
}

我在这里做错了吗?请严格要求解决方案。 TNX。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您可以使用条件语句来确定要调用的函数。 例如:

if (minion_roulette_counter == 0) {
   alien_cruiser();
}
else {
  minion_roulette();
}

不幸的是,绑定和取消绑定不会“关闭”某个功能。引用MDN:

  

bind()方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在调用新函数时提供任何前面提供的给定参数序列。 / p>

- MDN: 'Bind'