jquery2 toggle替代方法
2013-07-14 更新
2362 阅读
最近采用 jquery2.0.1 以后好多函数都失效了,今天做评论列表隐藏时发现.toggle 函数也没用了,用.on 来做吧,还得放个判断做两个点击按钮,感觉代码好多也很麻烦,后来网上搜索一番找到两个方法,在此记录一下。
1、引入 Migrate 插件进行修复。但是我也有洁癖,希望代码越精简越好,这个方法就不考虑了。
2、在现有的 jquery 代码中加入一段来修复此函数。
$.fn.toggle = function( fn, fn2 ) { if ( !$.isFunction( fn ) || !$.isFunction( fn2 ) ) { return oldToggle.apply( this, arguments ); } var args = arguments, guid = fn.guid || $.guid++, i = 0, toggler = function( event ) { var lastToggle = ( $._data( this, "lastToggle" + fn.guid ) || 0 ) % i; $._data( this, "lastToggle" + fn.guid, lastToggle + 1 ); event.preventDefault(); return args[ lastToggle ].apply( this, arguments ) || false; }; toggler.guid = guid; while ( i < args.length ) { args[ i++ ].guid = guid; } return this.click( toggler ); };
至此,大功告成,简单有效也不需引入一大段用不上的代码。
Life is like a Design.