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

Call a method once, only if button is clicked (atleast once)

我只想调用 loadNext() 方法一次,前提是至少单击了一次其他按钮。

我已经签出:Calling a Method Once

例如,我正在制作一个测验应用程序,每个问题类型都有问题和一些选项。 用户将 select 一个选项并点击下一个按钮以加载下一个问题(带有选项),(这些是在数组中预定义的)。 loadNext() 不应该被调用多次,即使选项被点击了不止一次(为了防止这种情况,我避免在这些选项(按钮)的 onclick 方法中调用 loadNext(),并且如果 none 个选项是 selected,

我的想法类似于 pre-defining isClickedfalse,并在这些选项的 onclick 方法中反转,但这不起作用。

到目前为止我做了什么:

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 新手。

假设你有一个 id="next" 用于你的下一步按钮

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

这就是您要找的吗?我是这样理解的

您在单击选项按钮时登录到控制台,这没问题,但是在下一个按钮的 onClick 侦听器中,检查是否单击了唯一的一个选项..您可以创建一个变量在全球范围内检查有多少 下一个按钮被点击的次数,代码片段是

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

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

}

我想您已经通过单选按钮找到了答案。您可以尝试 'radio buttons' 的选项。网上有足够多的参考资料。如果这不符合您的要求,请告诉我。