我的代碼中有一個奇怪的衝突。jQuery與body onload事件衝突
我有一個從身體的onload調用的函數:
var someGlobalVar=new SpecialType();
function OnBodyLoad()
{
someGlobalVar.Bind();
}
但是當我包括jQuery的1.4.2在項目中,我得到一個錯誤someGlobalVar是不確定的。 爲什麼現在未定義全局變量,以及有什麼方法可以解決它?
我的代碼中有一個奇怪的衝突。jQuery與body onload事件衝突
我有一個從身體的onload調用的函數:
var someGlobalVar=new SpecialType();
function OnBodyLoad()
{
someGlobalVar.Bind();
}
但是當我包括jQuery的1.4.2在項目中,我得到一個錯誤someGlobalVar是不確定的。 爲什麼現在未定義全局變量,以及有什麼方法可以解決它?
只是一個方面說明。
// DOM Ready
$(document).ready(function() {});
// When the page has completely loaded
<body onload="someFunction()">
除非你需要使用<body onload='OnBodyLoad()'>
了,你可以改變thise使用jQuery的document.ready
(並將其移動到外部文件!)是這樣的:
var someGlobalVar=new SpecialType();
$(OnBodyLoad);
//or..
$(function() {
//other stuff..
OnBodyLoad();
});
//or...
$(document).ready(function() {
//other stuff..
OnBodyLoad();
});
也許jQuery的干擾SpecialType
,因此調用new SpecialType();
導致變量someGlobalVar是undefined
。
嘗試使用控制檯檢查是否有任何警告,並嘗試手動實例化SpecialType對象。這應該給你一些見解。
爲什麼不使用jQuery的加載事件?
$(window).load(function() {
functiontoexecute();
});
它很簡單,而且很容易。
這跟這個問題完全沒有關係.. – 2010-05-19 10:23:27
@Sean - 如果'onload'處理程序被覆蓋或以任何方式改變,那麼在這個方法中附加一個處理程序會解決....這是遠遠超過jQuery干擾他的對象的可能性。 – 2010-05-19 10:40:25
但爲什麼包括jQuery做這樣的事情?但我知道你在做什麼。 – 2010-05-19 10:42:45