我无法解决以下问题。我定义这样的变量:
<script type="text/javascript">var myVar;</script>
<script type="text/javascript" src="/myScript.js"></script>
myScript.js看起来像这样:
$(document).ready(function() {
myVar = new myClass();
myVar.init();
});
如果我尝试像这样访问变量:
<div onclick="myVar.activate(x);">some content</div>
一切都很好,但如果我这样做
<img src="path" onload="myVar.activate(x);"/>
我收到错误“未定义myVar”。我不明白
<script type="text/javascript">var myVar;</script>
some DOM Elements
<script type="text/javascript" src="/myScript.js"></script>
<script type="text/javascript">myVar.activate(x);</script>
也不行吗?!?!! 很奇怪,不是吗?
* x是在服务器端生成的*
$(document).ready(function(){
// this function is executed after the entire document is ready,
// and it will fire after window.onload
myVar = new myClass();
myVar.init();
});
在这里,您尝试访问myVar的方法,但是您的.ready()
函数尚未触发,因此myVar
尚未设置为new myClass()
。它仍然是一个undefined
变量
<script type="text/javascript">
myVar.activate(x);
// this script executes *before* the code inside your document ready function,
// so this is *before* you have set myVar = new myClass();
var_dump(myVar);
// above should output 'undefined'
</script>
如果您确实需要/想要在onload属性中调用此方法,则应在内联脚本中将其设置myVar
为new myClass()
,如下所示:
<script type="text/javascript">
var myVar = new myClass();
myVar.init();
myVar.activate(x);
</script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句