扫码关注官方订阅号
怎么实现第一次点击的时候触发一个函数,然后之后点击都触发另一个函数呢
光阴似箭催人老,日月如移越少年。
function bind (func1, func2) { let func = null return function () { (!func ? (func = func2, func1) : func).apply(this, arguments) } }
https://jsfiddle.net/hsfzxjy/csvyg7a4/4/
加个判断啊!
或者你先绑定一个click,在这个click里面写你的第一个函数。
然后移除掉click的绑定,再绑定你的第二个函数。
var count = 0 function onClick(){ count ++ if (count >1){ //TODO }else { //TODO } }
提供一个简单的思路供参考:你可以定义一个总的开关标志,然后再由由一个统一的调度函数去调度两个函数,类似这样:var st = true;function foo(){
if(st ){ fun1(); }else{ fun2(); }
}
function fun1(){
st = false;
设置一个全局变量
var flag=true; $('#test').on('click', function () { if(flag){ flag=false; 函数1 } else{ 函数2 } });
可以在第一个事件中重新给这个元素绑定事件
写个立即执行函数呗
想到两个解决方案:
1.既然是两个处理函数,应该是不同的状态,可以用class区分开,比如一开始的状态是.button-off,后面的状态是.button-on,给这两个class分别绑定事件,并且在.button-off事件处理函数中把class切换至.button-on。感觉这样逻辑显得清晰一些。
.button-off
.button-on
2.如果使用jQuery的话,方法one可以绑定一次事件,在事件处理函数中再用on绑定正常事件,这样以后就都是执行on绑定的事件处理函数了。
one
on
不需要任何变量的方法:
sth.onclick = function() { fn1(); sth.onclick = fn2; };
仅供参考。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
https://jsfiddle.net/hsfzxjy/csvyg7a4/4/
加个判断啊!
或者你先绑定一个click,在这个click里面写你的第一个函数。
然后移除掉click的绑定,再绑定你的第二个函数。
提供一个简单的思路供参考:
你可以定义一个总的开关标志,然后再由由一个统一的调度函数去调度两个函数,类似这样:
var st = true;
function foo(){
}
function fun1(){
}
设置一个全局变量
可以在第一个事件中重新给这个元素绑定事件
写个立即执行函数呗
想到两个解决方案:
1.既然是两个处理函数,应该是不同的状态,可以用class区分开,比如一开始的状态是
.button-off,后面的状态是.button-on,给这两个class分别绑定事件,并且在.button-off事件处理函数中把class切换至.button-on。感觉这样逻辑显得清晰一些。2.如果使用jQuery的话,方法
one可以绑定一次事件,在事件处理函数中再用on绑定正常事件,这样以后就都是执行on绑定的事件处理函数了。不需要任何变量的方法:
仅供参考。