jQuery移除jQuery.fn.toggle(fn1,fn2)之后的替代方案

过去自己常用jQuery.fn.toggle(fn1,fn2)来处理click事件的两种状态,例如click一次做一个动作,再click一次则回复原来的动作,只要把两个动作处理的function handler指定给toggle当前、后两个参数即可。

但是由于jQuery中,有两个名称一样,但作用不同的toggle,一个就是前面描述的,另一个则是用来显示/隐藏元素。在jQuery 1.8中,前面描述的功能已经列入不建议使用,而1.9更是移除掉,只保留用来显示/隐藏元素的机制。

因此只要使用jQuery 1.9,有用上toggle(fn1,fn2)的都会失效。除非用上 jQuery Migrate plugin或者官方建议从原始码找出原来的作法,抽出来独立使用。

其实原本提供的toggle(fn1,fn2)直观又好用,移除实在太可惜了,刚好在stackoverflow看到一段替代办法,转过来分享给大家。

$.fn.toggleClick = function(){    var functions = arguments ;    return this.click(function(){            var iteration = $(this).data('iteration') || 0;            functions[iteration].apply(this, arguments);            iteration = (iteration + 1) % functions.length ;            $(this).data('iteration', iteration);    });};

上面的程式码已经整理成jQuery plugin, 所以只要依一般jQuery的外挂使用方法即可。

程式码的出处在此:http://stackoverflow.com/questions/14338078/equivalent-of-deprecated-jquery-toggle-event


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章