javascript - 这段代码为什么不好使
本文介绍了javascript - 这段代码为什么不好使的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
解决方案
原因是你的 show()
方法是在 onload()
函数内部定义的,外面访问不到。
HTML 的事件属性中调用的方法都需要在全局范围内定义
方法一
把 show()
强制定义在 window
对象上,因为对于网页来说 window
就是全局对象
window.onload = function() {
var oBox = document.getElementById("box");
window.show = function() {
oBox.style.display = "block";
};
};
方法二
在 show 中去取 oBox,也就是 @rubine 的解答。
这个方法由于是在 DOM 生成前定义的脚本,有可能在 box
还没加入 DOM 树的时候就触发了事件,这时候在 show()
里取不到 box
。
把脚本放在 </body>
前去就好。
方法三
写个闭包
window.show = (function() {
var oBox;
window.onload = function() {
oBox = document.getElementById("box");
};
return function() {
oBox.style.display = "block";
};
})();
这篇关于javascript - 这段代码为什么不好使的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文