javascript - 怎么实现第一次点击的时候触发一个函数,然后之后点击都触发另一个函数呢
大家讲道理
大家讲道理 2017-04-11 11:38:22
[JavaScript讨论组]

怎么实现第一次点击的时候触发一个函数,然后之后点击都触发另一个函数呢

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(9)
伊谢尔伦
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
     }
 });
伊谢尔伦

可以在第一个事件中重新给这个元素绑定事件

PHP中文网

写个立即执行函数呗

阿神

想到两个解决方案:

1.既然是两个处理函数,应该是不同的状态,可以用class区分开,比如一开始的状态是.button-off,后面的状态是.button-on,给这两个class分别绑定事件,并且在.button-off事件处理函数中把class切换至.button-on。感觉这样逻辑显得清晰一些。

2.如果使用jQuery的话,方法one可以绑定一次事件,在事件处理函数中再用on绑定正常事件,这样以后就都是执行on绑定的事件处理函数了。

迷茫

不需要任何变量的方法:

sth.onclick = function() {
    fn1();
    sth.onclick = fn2;
};

仅供参考。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号