扫码关注官方订阅号
是个初级的问题,js调试的时候提示变量未定义。代码如下:
明明在windows.onload中定义了。但oBtn的在执行的时候无法进行。
是个比较初级的问题,谢谢大神的指点。我已经在百度和论坛找过了,但是没有找到类似的,不知道是不是我还不太熟悉。
囧,没有注意了。这是一个局部变量。。。已经解决
因为oBtn在绑定click事件的时候还没有执行声明的语句;你应该将该绑定方法放在onload函数里。
oBtn
click
onload
既然你都说了是局部变量、为什么不把绑定事件的那段代码写到window.onload里面呢
JS有闭包特性
window.onload = function(){ var str = "test" } console.log(str) 仔细看看这段代码为什么会取不到、你的问题就解开了
你定义的两个变量是在onload事件函数里,你在onload事件外为obtn绑定事件肯定是找不到的,你试试把对象里的var都删掉,脚本就能运行了(只是做测试,但不推荐这样定义变量而污染了全局变量)。
绑定代码要写到onload代码块中。JavaScript在ES 5 中是函数作用域,如果想使用对应的变量,需要在同一个作用域下。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
因为
oBtn在绑定click事件的时候还没有执行声明的语句;你应该将该绑定方法放在onload函数里。既然你都说了是局部变量、为什么不把绑定事件的那段代码写到window.onload里面呢
JS有闭包特性
你定义的两个变量是在onload事件函数里,你在onload事件外为obtn绑定事件肯定是找不到的,你试试把对象里的var都删掉,脚本就能运行了(只是做测试,但不推荐这样定义变量而污染了全局变量)。
绑定代码要写到onload代码块中。
JavaScript在ES 5 中是函数作用域,如果想使用对应的变量,需要在同一个作用域下。