[问题] 有关return

楼主: washqwe (阿蹦)   2015-11-26 11:50:00
http://i.imgur.com/QbiYgKU.jpg
想请问上图点选click时不会work的原因,另外请问function只有在需要回传值才会用retur
作者: icydream (巧虎)   2015-11-26 13:34:00
改成tes.onclick=makeSizer; 试试
楼主: washqwe (阿蹦)   2015-11-26 14:19:00
但这样就没有传参数进去了
作者: illl (ill!)   2015-11-26 14:38:00
closure
楼主: washqwe (阿蹦)   2015-11-26 14:56:00
这是从闭包范例改来的,但想知道为什么这样不work
作者: CaptainH (Cannon)   2015-11-26 15:09:00
新手最常犯的错误就是 写个"work"就以为人家知道是什么
楼主: washqwe (阿蹦)   2015-11-26 15:16:00
请问楼上这位老手要怎么改呢
作者: Peruheru (还在想)   2015-11-26 16:19:00
我也不懂中文打一打还要切换英文打work不打"动"的原因XD还有你原本的问题好像被你自己切掉了?
楼主: washqwe (阿蹦)   2015-11-26 16:25:00
没放任何互动元素用动适当吗,为何要钻研在词而非问题上?切掉为不重要的部份
作者: Peruheru (还在想)   2015-11-26 16:30:00
适当,程式码就是一个动作,不管看不看得到提供几个方向1.程式码执行时机 你的js执行时元素是否还没产生?2.语法错误 就图片看来,你的第5行少了分号,第6行多了3.浏览器支援 5px的size在chrome似乎无效,太小了然后是比较进阶的观念,tes.onclick=makeSizer(20)意思并不是"在tes的onclick事件时执行makeSizer(20)"而是"在tes的onclick事件被放了makeSizer(20)的[结果]"你简单在makeSizer函式内多加一行alert('!');,你会发现网页一开始就跳了两次讯息,但你只希望一开始跑一次反而在你按下去时不会显示讯息,因为你没有绑到事件第六行改这样 tes.onclick=function(){makeSizer(20);};你就会发现有效果了如果你希望绑事件时执行特定参数,就得用闭包去包住他闭包会产生一个封闭环境,保存了宣告当时包含的数值不用闭包,就无法用这种方式宣告事件只能考虑写成元素内的程式码<a href="#" onclick="makeSizer(12);">12</a>安内干五撩盖?
楼主: washqwe (阿蹦)   2015-11-26 16:51:00
为何在makeSizer里把document.body...移入return就可执行呢
作者: Peruheru (还在想)   2015-11-26 16:55:00
因为那样会变成回传一个"动作"呀然后onclick就会接收到这个程式回传结果的"动作"可是这样一来还是闭包喔,在function里面回传动作这件事就算是闭包了等于是你在function里面回传另外一个function另外5的size好像可行,我以前试不行以为现在也是
楼主: washqwe (阿蹦)   2015-11-26 17:02:00
http://i.imgur.com/mFJRYTl.jpg 请问这样12没动的原因是什么
作者: Peruheru (还在想)   2015-11-26 17:03:00
大概是因为你包太多层了,所以执行时只是一直给予事件而没有去执行事件,刚才说的方法选一个做就好了不要全部都用上去我刚才写的方法,是找一个仲介帮我做事而你问的return方法,则是找人要了仲介的地址两个合起来,变成我找一个仲介,帮我要仲介的地址结果仲介除了要地址以外没有做任何事而且仲介甚至没把地址给我仲介或仲介的地址,选一个就好了,就可以委托他做事了
作者: y2468101216 (芸)   2015-11-26 17:15:00
https://goo.gl/crizVA 我觉得MDN讲得很清楚了
作者: ericdoctor (小黑)   2015-12-02 09:38:00
style.font-size = 你没有dash
楼主: washqwe (阿蹦)   2015-12-02 10:27:00
这不是css...

Links booklink

Contact Us: admin [ a t ] ucptt.com