0

我正在创建一个迷你 JavaScript 游戏。#div我希望通过点击计数器,通过一个按钮,在一定数量的点击时发生一系列效果和功能。

在让我想要的效果在函数中发生方面,我已经非常接近了,但是我需要根据点击次数和点击次数来组织它,并且使用 ONE#div按钮不会出错。因此,基本上将所有这些功能绑定到一个按钮上没有问题。

我需要一个点击计数器,大概。EG, Click 1 = This function fires. Click 2 = This function fires.目前我的大部分功能都可以工作,但火都乱了。需要这些函数来触发,具体到点击次数。因此,还需要计算和存储点击次数。

任何指针?

下面是它的成型方式:

 $(document).ready(function() {

$var a1_Events = [function1, function2, function3, function4, function5, function6, function7, function8],
    a1_c = 0;


function function1(){
  alert('SHAKING!');
}

function function2(){
  alert('BZZZZZZZZZZZ!');
}

function function3(){
  $("#area1").click(function(){
    $("#area1").hide();
    $("#area2").show();
  });
}

function function4(){
  $("#area2").click(function(){
    $("#area1").show();
    $("#area2").hide();
  });
}

function function5(){
  alert('YES!');
}

function function6(){
$("#area1").click(function(){
  $("#bg_div").hide(0).delay(1500).show(0);
  $("#bg_skew").show(0).delay(1500).hide(0);
   });
}

function function7(){
  alert('NO!');
}

function function8(){
$("#area1").click(function(){
  $("#area1").hide(0).delay(1500).show(0);
  $("#area2").hide(0).delay(1500).show(0);
  $("#sound1").show(0).delay(1500).hide(0);
   });
}

$('#area1').click(function(){
   a1_Events[a1_c++ % a1_Events.length]();
  });
});

& 是的。我试图让一个div 充当主要的“按钮”,可以这么说,以允许这些功能在每次点击时触发。第一次点击,BOOM,这个功能出现,第二次点击BAM,这个功能出现,以此类推。可能通过存储和跟踪点击次数。再一次,在特定点击“x”上触发,而不是每次点击。

4

1 回答 1

1

你已经用它做你想做的事了:

$('#area1').click(function () {
   a1_Events[a1_c++ % a1_Events.length]();
});

但是,正如Bergi 指出的那样,您的一些点击处理程序会绑定其他点击处理程序。调用这些函数后,每次单击都会调用多个函数。将这些函数更改为不绑定新的点击处理程序,而只是执行操作。例如,function3()应该是:

function function3() {
    $("#area1").hide();
    $("#area2").show();
}

改变function6()function8()以同样的方式。删除function4()作为#area1. 它永远不会被调用,因为它没有设置为在 after 之前被调用function3(),它会隐藏#area1,使其无法点击。#area2只需在文档就绪处理程序中直接绑定 click 事件即可。你有$var a1_Events. 我认为这只是一个错字。

$(document).ready(function () {
    var a1_Events = [function1, function2, function3, function5, function6, function7, function8],
        a1_c = 0;
    function function1() {
        alert('SHAKING!');
    }
    function function2() {
        alert('BZZZZZZZZZZZ!');
    }
    function function3() {
        $("#area1").hide();
        $("#area2").show();
    }
    function function5() {
        alert('YES!');
    }
    function function6() {
        $("#bg_div").hide(0).delay(1500).show(0);
        $("#bg_skew").show(0).delay(1500).hide(0);
    }
    function function7() {
        alert('NO!');
    }
    function function8() {
        $("#area1").hide(0).delay(1500).show(0);
        $("#area2").hide(0).delay(1500).show(0);
        $("#sound1").show(0).delay(1500).hide(0);
    }
    $('#area1').click(function () {
        a1_Events[a1_c++ % a1_Events.length]();
    });
    $("#area2").click(function () {
        $("#area1").show();
        $("#area2").hide();
    });
});

jsfiddle.net/uWVAb

于 2013-07-03T18:07:50.400 回答