只有在单击按钮时才调用一次方法(至少一次)

时间:2017-12-30 16:21:50

标签: javascript jquery buttonclick

如果至少点击一次其他任何按钮,我只想调用loadNext()方法一次。

我已检查过:Calling a Method Once

例如,我正在制作一个测验应用,为每个问题类型提出问题和一些选项。 用户将选择一个选项并按下下一个按钮以加载下一个问题(带选项),(这些是在数组中预定义的)。即使多次单击选项,也不应多次调用loadNext()(为了防止这种情况,我避免在那些选项(按钮)的onclick方法中调用loadNext(),如果没有,也不会加载选择了选项,

我的想法类似于将isClicked预定义为false,并在这些选项的onclick方法内部进行反转,但这不起作用。

到目前为止我做了什么:

question_and_options

var optButtons = $(".opt button");
var isClicked = false;
optButtons.click(function () {
        isClicked = true;
        console.log("clicked on opt buttons: " + this.id);
        console.log("Current button is: " + this.id + " set as active");
       //other stuffs
    });

//some other stuffs


if (isClicked) {
console.log("Clicked once!");
        //other stuffs
        loadNext();
    } else {
        alert("Please select an option");
//browser is alerting very first time after opening `index.html` file 
// and Next button click isn't working after that
        }

任何指示都将受到赞赏,在此先感谢! 我是JS的新手。

3 个答案:

答案 0 :(得分:1)

假设您的“下一步”按钮有id="next"

,那该怎么办?
$("#next").on('click',function(){
    if(isClicked){
        loadNext();
        // Set isClicked to false to reset mechanism
        isClicked = false;
    }
});

这会是你'重新寻找?我这样理解

答案 1 :(得分:0)

单击选项按钮时,您正在登录到控制台,这是正常的,但是在下一个按钮的onClick侦听器中,检查是否单击了一个选项..并且您可以在全局创建变量范围检查多少 单击下一个按钮的时间,代码片段

//function called on clicking the next button
function abcd(){

  counter++;
  if(counter!=-1){
   return;
  }
  else{
    //call the loadnext()
  }

}

答案 2 :(得分:0)

我猜你有单选按钮的答案。您可以尝试“单选按钮”选项。网上有足够多的参考资料。如果这不符合您的要求,请告诉我。