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