Maison > interface Web > tutoriel HTML > jquery中回调函数的问题,大虾帮忙解决一下~_html/css_WEB-ITnose

jquery中回调函数的问题,大虾帮忙解决一下~_html/css_WEB-ITnose

WBOY
Libérer: 2016-06-24 12:03:26
original
1230 Les gens l'ont consulté

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8" /><script src="jquery-1.9.1.min.js" type="text/javascript"></script><script type="text/javascript" >$(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]  = true;                }            }        })(i,dd[i]));                   })})</script><style type="text/css">.collapse { border:solid 1px #ccc; margin:2px; float:left; }.collapse dt { padding:8px 8px; background:#7FECAD url(green.gif) repeat-x; font-size:13px; font-weight:bold; color:#71790C; border-bottom:solid 1px #efefef; cursor:pointer; }.collapse dd { margin:0; padding:6px; }.w1 {width:310px;}.w2 {width:221px;}.w3 {width:665px;}</style><title>上机练习</title></head><body><dl class="collapse w1">    <dt>音乐标签</dt>    <dd><img  src="mp31.jpg" / alt="jquery中回调函数的问题,大虾帮忙解决一下~_html/css_WEB-ITnose" ></dd></dl><dl class="collapse w2">    <dt>新歌TOP100</dt>    <dd><img  src="mp32.jpg" / alt="jquery中回调函数的问题,大虾帮忙解决一下~_html/css_WEB-ITnose" ></dd></dl><dl class="collapse w3">    <dt>音乐掌门人</dt>    <dd><img  src="mp33.jpg" / alt="jquery中回调函数的问题,大虾帮忙解决一下~_html/css_WEB-ITnose" ></dd></dl></body></html>
Copier après la connexion


green.gif:
mp31.jpg:
mp32.jpg:
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]));  
Copier après la connexion

return的作用是什么?
改成下面的为什么不行?
$(dt[i]).click((function(i,dd){                if( t[i]){                    $(dd).show();                    t[i]  = false;                }                else{                    $(dd).hide();                    t[i]  = true;                }        })(i,dd[i])); 
Copier après la connexion


回复讨论(解决方案)

click绑定肯定是一个函数,你修改后,就成一个上来就自执行的函数,肯定是不对的

又因为i作用域的问题,使用闭包解决i索引问题,最终return 函数给 click

一个是传函数,你写的是直接执行,区别那么大

经过两位指点,我已经懂了~thank you

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal