问题描述
- JS无干扰事件的小问题,谢谢啦
-
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <input value="点击0" type="button"/> <input value="点击1" type="button"/> <input value="点击2" type="button"/> <input value="点击3" type="button"/> <input value="点击4" type="button"/> <input value="点击5" type="button"/> </body> <script type="text/javascript"> var s=document.getElementsByTagName('input'); //获取整个网页的标签 window.onload=function(){ for(var i=0;i< s.length;i++){ s[i].onclick=(function(num){ return function(){show(num)} })(i) } }; function show(num){ alert("你好,请"+num+"号嘉宾领奖") } </script> </html>
里面有一段代码看不懂
for(var i=0;i< s.length;i++){ s[i].onclick=(function(num){ return function(){show(num)} })(i) }
看不明白, 那个(i)为什么放到最后面,i的值怎么传给num的?
解决方案
表示还是看不懂啊, 那个(i)为什么放到最后面,i的值怎么传给num的?
解决方案二:
然并卵...自学太苦恼了. 得不到答案呐....= - -
解决方案三:
闭包的知识,有兴趣百度看看
解决方案四:
s[i].onclick=(function(num){
return function(){show(num)}
})(i)
当一个函数定义完,我们想立即调用怎么办?
function a(s){
alert(s)
}
在后面加上小括号,为了防止报错,给函数加上运算符或者无实意的括号,比如:
+function a(s){
alert(s)
}(3)
(function a(s){
alert(s)
})(3)
(function a(s){
alert(s)
}(3))
解决方案五:
传值给闭包,也学习了一下
解决方案七:
闭包的知识,最经典的例子
解决方案八:
作用是传值给闭包,很简单
时间: 2024-12-02 05:54:25