84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
想了解jquery1.9版本之前中有一个toggle方法可以实现为一个元素绑定多个点击事件,每一次点击触发不同事件的实现方法。我有一个思路是记录点击次数,然后根据不同的点击次数,返回不同的事件实现。不知道有没有更好的方法。
欢迎选择我的课程,让我们一起见证您的进步~~
这是源码,源码找半天。。
使用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源码查看
定义一个变量var a=0;每一次占击时a++;当点击次数达到某个值时执行操作if(a=n){dosomething}处理完dosomething后将a置为0
按这个思路来,不过跟toggle应该没什么关系。
这是源码,源码找半天。。
使用jquery._data缓存下一次执行的函数,toggle多次点击执行不同的事件一般是这样写的
如何计算执行那个函数
第一次点击,lastToggle = 0 % 2 = 0,执行第一个函数
然后缓存下一次应该执行哪一个
第二次点击,lastToggle = 1 % 2 = 1,执行第二个函数
第三次点击,lastToggle = 2 % 2 = 0,执行第一个函数
第四次点击,lastToggle = 1 % 2 = 1,执行第二个函数
以此类推。。。
源代码可以自己下载jquery源码查看
定义一个变量var a=0;
每一次占击时a++;
当点击次数达到某个值时执行操作if(a=n){dosomething}
处理完dosomething后将a置为0
按这个思路来,不过跟toggle应该没什么关系。