<script>
function one() {
blah blah blah
}
function two() {
blah blah blah
}
</script>
<button onclick="one(); two()">Click Me</button>
这将同时调用这两个函数。我想要的是在第一次单击时调用函数one()然后在第二次单击时调用函数two()。第三次点击时调用函数three(),依此类推,直到第7次点击
如果可能,我宁愿不使用jQuery
答案 0 :(得分:4)
您可以使用IIFE来完成此操作:
var fn3 = (function() {
var first = true;
return function() {
first ? fn1() : fn2();
first = !first;
}
})();
function fn1() {
console.log(1);
};
function fn2() {
console.log(2);
};
<button onClick="fn3()">click</button>
答案 1 :(得分:3)
解决方案不是太复杂,你只能从另一个函数中得到一个()和两个()。
var callOne = true;
function one() {
alert('Call one');
}
function two() {
alert('Call two');
}
function call(){
if(callOne) one();
else two();
callOne = !callOne;
}
&#13;
<button onclick="call();">Click Me</button>
&#13;
答案 2 :(得分:2)
这样做的一个简单方法是重新分配onclick值:
<button id="clickme">Click Me</button>
<script>
function one() {
alert('one clicked');
document.getElementById('clickme').onclick = two;
}
function two() {
alert('two clicked');
}
document.getElementById('clickme').onclick = one;
</script>
使用此技巧,您可以选择在调用two()
后禁用该按钮:
document.getElementById('clickme').onclick = null;
将点击处理程序切换回one()
:
document.getElementById('clickme').onclick = one;
或者做你想做的任何其他事情。
答案 3 :(得分:0)
我会像贝娄那样做。
单击该按钮有一个功能,可根据次数决定调用哪个功能。
<button onclick="decideFunction()">Click Me</button>
var times = 0;
var one = function(){
alert('first time');
}
var two = function(){
alert('After first');
}
var decideFunction = function(){
if(times == 0){
one();
times++;
}
else{
two();
}
}
因此,它首次执行函数one
,第二次执行函数two
。
答案 4 :(得分:0)
最简单的方法是将额外变量定义为false
(当然还是true
)。虽然我们的变量是false
,但点击按钮会调用第一个函数并将变量更改为true
。在第二次单击时,我们的onclick函数检查变量值并调用我们为true
值定义的函数。
var button = document.getElementById('button');
var x = false;
button.addEventListener('click', function(){
if(!x){
alert('function 1');
x = true;
}else{
alert('function 2');
x = false;
}
})