一个按钮在不同的点击中调用两个不同的功能
one button calls two different functions on different clicks
<script>
function one() {
blah blah blah
}
function two() {
blah blah blah
}
</script>
<button onclick="one(); two()">Click Me</button>
这将同时调用两个函数。我想要的是调用函数one()在第一次点击,然后调用函数two()在第二次点击。第三次点击调用函数three(),以此类推,直到第七次点击
我宁愿不使用jQuery如果可能的话
您可以使用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>
解决方案并不太复杂,您只需从另一个函数中获取一个()和两个()。
var callOne = true;
function one() {
alert('Call one');
}
function two() {
alert('Call two');
}
function call(){
if(callOne) one();
else two();
callOne = !callOne;
}
<button onclick="call();">Click Me</button>
一种简单的方法是重新分配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;
我这样写
点击按钮有一个函数,根据调用次数决定调用哪个函数。
<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
最简单的方法是为false
(或者true
)定义一个额外的变量。虽然我们的变量是false
,但单击button调用第一个函数并将变量更改为true
。在第二次单击时,我们的onclick函数检查变量值并调用我们为true
value定义的函数。
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;
}
})
相关文章:
- 为什么ng控制器不调用或工作或功能不工作
- 剑道UI移动版 - 按钮点击时调用功能时出现问题
- 一次又一次地调用功能
- 自动完成jQueryUI双调用功能,然后选择并按回车键
- 如果悬停:动画完成后重新调用功能
- Javascript使用Jasmine来监视自调用功能
- 复选框选中功能,用于单个页面中的两组复选框,不能单独调用功能
- Jquery调用功能(在更新面板内)不流畅
- 自调用功能+闭合,改善垃圾回收挂起
- 我该如何摆脱这种自我调用功能
- 我们可以将自调用功能模块分配给变量吗
- Jquery移动页面更改后调用功能
- 确定文件调用功能的目录级别
- 如何确认和调用功能与点击
- 显示控制器每次时间视图上的调用功能
- 同一视图下的骨干视图调用功能
- 按钮不调用功能
- 我可以调用功能时,按钮禁用和修改设置启用在检查元素的CSS样式在FF或Chrome
- 当所有图像都被点击时,调用功能
- 火狐扩展 - 文本突出显示时的调用功能