首页  >  问答  >  正文

javascript - jquery中的toggle切换事件是怎么实现的?

想了解jquery1.9版本之前中有一个toggle方法可以实现为一个元素绑定多个点击事件,每一次点击触发不同事件的实现方法。我有一个思路是记录点击次数,然后根据不同的点击次数,返回不同的事件实现。不知道有没有更好的方法。

天蓬老师天蓬老师2770 天前478

全部回复(3)我来回复

  • 迷茫

    迷茫2017-04-11 12:21:17

    这是源码,源码找半天。。

    回复
    0
  • 高洛峰

    高洛峰2017-04-11 12:21:17

    使用jquery._data缓存下一次执行的函数,toggle多次点击执行不同的事件一般是这样写的

    $('#example').toggle(function() {
        // 事件1       
    }, function() {
        // 事件2
    });

    如何计算执行那个函数

    var lastToggle = (jQuery._data(this, "lastToggle" + fn.guid) || 0)%i;

    第一次点击,lastToggle = 0 % 2 = 0,执行第一个函数

    然后缓存下一次应该执行哪一个

    jQuery._data(this, "lastToggle" + fn.guid, lastToggle+1)

    第二次点击,lastToggle = 1 % 2 = 1,执行第二个函数

    第三次点击,lastToggle = 2 % 2 = 0,执行第一个函数

    第四次点击,lastToggle = 1 % 2 = 1,执行第二个函数

    以此类推。。。

    源代码可以自己下载jquery源码查看

    回复
    0
  • PHPz

    PHPz2017-04-11 12:21:17

    定义一个变量var a=0;
    每一次占击时a++;
    当点击次数达到某个值时执行操作if(a=n){dosomething}
    处理完dosomething后将a置为0

    按这个思路来,不过跟toggle应该没什么关系。

    回复
    0
  • 取消回复