我的代码中有一个奇怪的冲突。
我有一个从body onload调用的函数:
var someGlobalVar=new SpecialType();
function OnBodyLoad()
{
someGlobalVar.Bind();
}
但是当我在项目中包含jQuery 1.4.2时,我得到一个错误,即someGlobalVar未定义。 为什么现在全局变量未定义,以及有哪些方法可以解决它?
答案 0 :(得分:3)
除非您需要再使用<body onload='OnBodyLoad()'>
,否则您可以将此更改为使用jQuery的document.ready
(并将其移至外部文件!),如下所示:
var someGlobalVar=new SpecialType();
$(OnBodyLoad);
//or..
$(function() {
//other stuff..
OnBodyLoad();
});
//or...
$(document).ready(function() {
//other stuff..
OnBodyLoad();
});
答案 1 :(得分:3)
为什么不使用jQuery的加载事件?
$(window).load(function() {
functiontoexecute();
});
这很简单,很容易。
答案 2 :(得分:2)
只是旁注。
// DOM Ready
$(document).ready(function() {});
// When the page has completely loaded
<body onload="someFunction()">
答案 3 :(得分:2)
也许jQuery会干扰SpecialType
,因此对new SpecialType();
的调用导致变量someGlobalVar为undefined
。
尝试使用控制台检查是否有任何警告,并尝试手动实例化SpecialType对象。这应该会给你一些见解。