Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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_Onclick - Fatal编程技术网

每次单击都会使用Javascript其他函数

每次单击都会使用Javascript其他函数,javascript,onclick,Javascript,Onclick,我是JavaScript新手,每次都想调用另一个函数,比如: onclick="on first click a(), then b(), etc " 当然,它不会像这样工作,但有这样做的选择吗 谢谢 是的,当然有。始终调用同一个函数,并让被调用的函数决定接下来会发生什么: <script> var count = 0; function myClickHandler() { switch(count) { case 0: a();

我是JavaScript新手,每次都想调用另一个函数,比如:

onclick="on first click a(), then b(), etc "
当然,它不会像这样工作,但有这样做的选择吗


谢谢

是的,当然有。始终调用同一个函数,并让被调用的函数决定接下来会发生什么:

<script>
  var count = 0;
  function myClickHandler() {
    switch(count) {
      case 0:
        a();
        break;
      case 1:
        b();
        break;
    }
    count++;
  }
</script>
<div onclick="myClickHandler()"></div>

var计数=0;
函数myClickHandler(){
开关(计数){
案例0:
a();
打破
案例1:
b();
打破
}
计数++;
}

当然,这是最具可读性的初学者版本。请参阅昆汀的答案,了解更高级的示例。

是的,当然有。始终调用同一个函数,并让被调用的函数决定接下来会发生什么:

<script>
  var count = 0;
  function myClickHandler() {
    switch(count) {
      case 0:
        a();
        break;
      case 1:
        b();
        break;
    }
    count++;
  }
</script>
<div onclick="myClickHandler()"></div>

var计数=0;
函数myClickHandler(){
开关(计数){
案例0:
a();
打破
案例1:
b();
打破
}
计数++;
}

当然,这是最具可读性的初学者版本。有关更高级的示例,请参见昆廷的答案。

将函数存储在合理的数据结构中。因为您希望按顺序访问它们,所以将其设置为数组

function a() { };
function b() { };
function c() { };
function d() { };

var myFunctions = [a, b, c, d];
然后跟踪下一步要调用的函数:

var nextFunction = 0;
然后,每次调用其中一个函数时,递增指针

function myFunctionSwitcher() {
    myFunctions[nextFunction]();
    nextFunction = nextFunction + 1;
}
然后,将其用作事件处理程序:

document.getElementById('whatever').addEventListener('click', myFunctionSwitcher);

添加一些逻辑,以便在到达数组末尾时将
nextFunction
重置为
0

将函数存储在合理的数据结构中。因为您希望按顺序访问它们,所以将其设置为数组

function a() { };
function b() { };
function c() { };
function d() { };

var myFunctions = [a, b, c, d];
然后跟踪下一步要调用的函数:

var nextFunction = 0;
然后,每次调用其中一个函数时,递增指针

function myFunctionSwitcher() {
    myFunctions[nextFunction]();
    nextFunction = nextFunction + 1;
}
然后,将其用作事件处理程序:

document.getElementById('whatever').addEventListener('click', myFunctionSwitcher);
添加一些逻辑,以便在到达阵列末尾时将
nextFunction
重置为
0

解决方案一 HTML 纯Javascript
//函数数组
变量函数=[
函数(){alert(“第一个函数”)},
函数(){alert(“第二个函数”)}
];
//所有按钮
var anchors=document.getElementsByTagName('button');
//检测每个按钮的单击
对于(var i=0;i
解决方案一 HTML 纯Javascript
//函数数组
变量函数=[
函数(){alert(“第一个函数”)},
函数(){alert(“第二个函数”)}
];
//所有按钮
var anchors=document.getElementsByTagName('button');
//检测每个按钮的单击
对于(var i=0;i
您只需要一个计数器,我认为他还不能使用jQuery,正如他所说,他刚刚开始使用JS。在使用jQuery这样的大型库之前,让他先学习最基本的知识。换句话说:让他感受VanillaJS的痛苦:)除了Sascha的答案,你可以让每个被调用的函数在被调用后改变onclick绑定。哈哈,你说得对Sascha:-)你只需要一个计数器,我认为他还不能使用jQuery,正如他所说,他刚刚开始使用JS。在使用jQuery这样的大型库之前,让他先学习最基本的知识。换句话说:让他感受到VanillaJS的痛苦:)除了Sascha的回答,你可以让每个被调用的函数在被调用后改变onclick绑定。哈哈,你是对的Sascha:-)你的不是更多的“初学者…”而是更混乱,而且它闻起来有那么多的案例/漏洞。不要讨厌玩家,讨厌这个游戏。我想你是说我应该讨厌Javascript?是你以这种怪诞的方式使用它……我的意思是,有更干净的解决方案来处理开关盒样式的语句,就像在CoffeeScript中一样。然而,这是对的,switch语句在任何语言中都是丑陋的。我的观点是,你不应该把这称为昆汀答案的“初学者版本”。昆廷的回答和你的一样,极其简陋。你的不是一个初学者版本,它是一个凌乱的代码,相当于糟糕的练习,但绝对不是一个版本。你的不是更“初学者…”它更凌乱,而且闻起来有那么多案例/漏洞。不要恨玩家,恨游戏。我想你是说我应该恨Javascript?是你以这种怪诞的方式使用它……我的意思是,有更干净的解决方案来处理开关盒样式的语句,就像在CoffeeScript中一样。然而,这是对的,switch语句在任何语言中都是丑陋的。我的观点是,你不应该把这称为昆汀答案的“初学者版本”。昆廷的回答和你的一样,极其简陋。你的不是一个初学者版本,它是一个混乱的代码,相当于糟糕的实践,但绝对不是一个版本。你能给我一个最终的结果吗?谢谢你的回答,顺便说一句@user2514005-除了重置
nextFunction
(这只是一个if大于length赋值0)之外,这是最终结果。同样,这是一个示例。您能为我做一个最终结果吗?谢谢你的回答,顺便说一句@user2514005-除了重置
nextFunction
(这只是一个if大于length赋值0)之外,这是最终结果。同样,这是一个示例。