84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
想了解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应该没什么关系。