Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何对仅在多次单击时有效的按钮进行编码_Javascript - Fatal编程技术网

Javascript 如何对仅在多次单击时有效的按钮进行编码

Javascript 如何对仅在多次单击时有效的按钮进行编码,javascript,Javascript,我正在尝试编写一个简单的测验应用程序。我试图把一个隐藏的屏幕放在最后,当一个人在最后点击一个按钮3次。这就是我尝试过的: for (var i = 0; i > 2; i++) { onEvent("button26", "click", function() { setScreen("TrollScreen"); playSound("sound://default.mp3", false); }); } 我对代码相当陌生,我不知道如何做到这一点。非常感谢您的帮

我正在尝试编写一个简单的测验应用程序。我试图把一个隐藏的屏幕放在最后,当一个人在最后点击一个按钮3次。这就是我尝试过的:

for (var i = 0; i > 2; i++) {
  onEvent("button26", "click", function() {
    setScreen("TrollScreen");
    playSound("sound://default.mp3", false);
  });
}

我对代码相当陌生,我不知道如何做到这一点。非常感谢您的帮助。

您每次按下按钮都会点击三次(至少我认为是这样)。相反,创建一个从0开始的计数器变量,并在每次按下按钮时将其递增1。将要执行的操作放入if语句中

if(counter >= 3){
//do some action
} 

希望有帮助

每次按下按钮时,它都会单击三次(至少我认为是这样)。相反,创建一个从0开始的计数器变量,并在每次按下按钮时将其递增1。将要执行的操作放入if语句中

if(counter >= 3){
//do some action
} 

希望有帮助

您需要将点击次数保持在事件处理程序之外。然后在它里面你可以检查这个值并显示屏幕或者相应地增加计数器

var count = 0;
onEvent("button26", "click", function(){
    if(count > 2){
      setScreen("TrollScreen");
      playSound("sound://default.mp3", false);
    }else{
      count++;
    }
});

您需要将点击次数保持在事件处理程序之外。然后在它里面你可以检查这个值并显示屏幕或者相应地增加计数器

var count = 0;
onEvent("button26", "click", function(){
    if(count > 2){
      setScreen("TrollScreen");
      playSound("sound://default.mp3", false);
    }else{
      count++;
    }
});

由于所有DOM元素实际上都是对象,因此您可以向它们附加一个用作计数器的属性,因此当单击按钮时,您可以将该属性增加
1
,然后检查它是否已经达到
3

更微妙的方法是使用附加事件的helper函数,并将计数器设置为closured变量,如下所示:

function attachEventWithCounter(elem, func, maxClickCount) {
  let count = 0;
  elem.addEventListener("click", function(e) {
    count++;
    if(count >= maxClickCount) {
      func.call(this, e);
      // and probably reset 'count' to 0
    }
  });
}
然后您可以这样使用它:

attachEventWithCounter(myButton, myEventListener, 3);
attachEventWithCounter
只接受一个DOM元素、一个用作事件侦听器的函数和一个最大尝试次数的数字。然后,它附加一个click事件侦听器(如果需要,也可以传入事件的类型),然后每当该事件发生时,它递增一个本地声明的变量
count
(最初设置为
0
),并检查它是否达到了最大尝试次数,如果是,它只调用作为参数传递的函数(使用
函数#call
传递自定义
this
和事件参数以模拟实际事件侦听器)

示例:

函数附加ventwithCounter(元素、函数、最大单击计数){
让计数=0;
元素addEventListener(“点击”,函数(e){
计数++;
如果(计数>=maxClickCount){
函数调用(this,e);
计数=0;
}
});
}
设btn=document.getElementById(“myButton”);
函数侦听器(){
警报(“最后点击!!!”;
}
附加ventwithcounter(btn,侦听器,3);

单击我3次
因为所有DOM元素实际上都是对象,所以您可以为它们附加一个属性作为计数器,因此当单击按钮时,您可以将该属性增加
1
,然后检查它是否已经达到
3

更微妙的方法是使用附加事件的helper函数,并将计数器设置为closured变量,如下所示:

function attachEventWithCounter(elem, func, maxClickCount) {
  let count = 0;
  elem.addEventListener("click", function(e) {
    count++;
    if(count >= maxClickCount) {
      func.call(this, e);
      // and probably reset 'count' to 0
    }
  });
}
然后您可以这样使用它:

attachEventWithCounter(myButton, myEventListener, 3);
attachEventWithCounter
只接受一个DOM元素、一个用作事件侦听器的函数和一个最大尝试次数的数字。然后它附加一个click事件侦听器(如果需要,也可以传入事件类型)然后,每当该事件发生时,它都会增加一个本地声明的变量
count
(最初设置为
0
),并检查它是否达到最大尝试次数,如果达到最大尝试次数,则只调用作为参数传递的函数(使用
函数#call
传递自定义
this
和事件参数以模拟实际事件侦听器)

示例:

函数附加ventwithCounter(元素、函数、最大单击计数){
让计数=0;
元素addEventListener(“点击”,函数(e){
计数++;
如果(计数>=maxClickCount){
函数调用(this,e);
计数=0;
}
});
}
设btn=document.getElementById(“myButton”);
函数侦听器(){
警报(“最后点击!!!”;
}
附加ventwithcounter(btn,侦听器,3);

单击我3次
您希望将计数器变量保留在事件范围之外,以跟踪它被单击的次数。例如

let counter = 0;
onEvent("button26", "click", function() {
  if(counter >= 3) {
    setScreen("TrollScreen");
    playSound("sound://default.mp3", false);
  }
  counter ++;
});

您希望将计数器变量保留在事件范围之外,以跟踪它被单击的次数

let counter = 0;
onEvent("button26", "click", function() {
  if(counter >= 3) {
    setScreen("TrollScreen");
    playSound("sound://default.mp3", false);
  }
  counter ++;
});
//创建一个变量以检查按钮被单击的次数
var按钮单击=0;
函数CheckCount(){
//检查buttonClick变量是否为3
如果(按钮单击==3){
//如果等于3,则显示屏幕并播放声音
//为了演示,下面的注释被删除了
//设置屏幕(“自动屏幕”);
//播放声音(“sound://default.mp3“,假);
document.getElementById('buttonclickcount').innerHTML=“您单击了三次”;
}否则{
//如果不是这样,则将buttonClick变量增加1
钮扣++
//所以你可以看到按钮被点击了多少次
document.getElementById('buttonclickcount')。innerHTML=buttonClick;
}
};

你赢了!
//创建一个变量以检查按钮被单击的次数
var按钮单击=0;
函数CheckCount(){
//检查buttonClick变量是否为3
如果(按钮单击==3){
//如果等于3,则显示屏幕并播放声音
//为了演示,下面的注释被删除了
//设置屏幕(“自动屏幕”);
//播放声音(“sound://default.mp3“,假);
document.getElementById('buttonclickcount').innerHTML=“您单击了三次”;
}否则{
//如果是