想了解jquery1.9版本之前中有一个toggle方法可以实现为一个元素绑定多个点击事件,每一次点击触发不同事件的实现方法。我有一个思路是记录点击次数,然后根据不同的点击次数,返回不同的事件实现。不知道有没有更好的方法。
高洛峰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源码查看
PHPz2017-04-11 12:21:17
定义一个变量var a=0;
每一次占击时a++;
当点击次数达到某个值时执行操作if(a=n){dosomething}
处理完dosomething后将a置为0
按这个思路来,不过跟toggle应该没什么关系。