jquery中回调函数的问题,大虾帮忙解决一下~_html/css
来源:动视网
责编:小采
时间:2020-11-27 15:53:30
jquery中回调函数的问题,大虾帮忙解决一下~_html/css
jquery中回调函数的问题,大虾帮忙解决一下~_html/css_WEB-ITnose:$(function(){ var t = []; var dt = $(dl.collapse dt); var dd = $(dl.collapse dd); dt.each(function(i){ t[i] = false; $(dt[i]).click((function(i,dd){ return function(){ if( t[i]){ $(dd).show(); t[i] = false; } else{ $(dd).hide(); t[i] =
导读jquery中回调函数的问题,大虾帮忙解决一下~_html/css_WEB-ITnose:$(function(){ var t = []; var dt = $(dl.collapse dt); var dd = $(dl.collapse dd); dt.each(function(i){ t[i] = false; $(dt[i]).click((function(i,dd){ return function(){ if( t[i]){ $(dd).show(); t[i] = false; } else{ $(dd).hide(); t[i] =

green.gif:
/Uploads/mp31.jpg:
/Uploads/mp32.jpg:
/Uploads/mp33.jpg:
我是想问问这个代码:
$(dt[i]).click((function(i,dd){ return function(){ if( t[i]){ $(dd).show(); t[i] = false; } else{ $(dd).hide(); t[i] = true; } } })(i,dd[i]));
return的作用是什么?
改成下面的为什么不行?
$(dt[i]).click((function(i,dd){ if( t[i]){ $(dd).show(); t[i] = false; } else{ $(dd).hide(); t[i] = true; } })(i,dd[i]));
回复讨论(解决方案)
click绑定肯定是一个函数,你修改后,就成一个上来就自执行的函数,肯定是不对的
又因为i作用域的问题,使用闭包解决i索引问题,最终return 函数给 click
一个是传函数,你写的是直接执行,区别那么大
经过两位指点,我已经懂了~thank you
jquery中回调函数的问题,大虾帮忙解决一下~_html/css
jquery中回调函数的问题,大虾帮忙解决一下~_html/css_WEB-ITnose:$(function(){ var t = []; var dt = $(dl.collapse dt); var dd = $(dl.collapse dd); dt.each(function(i){ t[i] = false; $(dt[i]).click((function(i,dd){ return function(){ if( t[i]){ $(dd).show(); t[i] = false; } else{ $(dd).hide(); t[i] =