Конфликт jQuery с событием загрузки тела - PullRequest
0 голосов
/ 19 мая 2010

У меня странный конфликт в моем коде.

У меня есть функция, которая вызывается из onload body:

var someGlobalVar=new SpecialType(); 
function OnBodyLoad()
{
  someGlobalVar.Bind();
}

Но когда я включаю jQuery 1.4.2 в свой проект, я получаюошибка, что someGlobalVar не определено.Почему глобальная переменная не определена и как ее исправить?

Ответы [ 4 ]

3 голосов
/ 19 мая 2010

Почему вы не используете событие загрузки jQuery?

$(window).load(function() {
      functiontoexecute();
});

Это просто, и это легко.

3 голосов
/ 19 мая 2010

Если вам больше не нужно использовать <body onload='OnBodyLoad()'>, вы можете изменить это на использование document.ready в jQuery (и переместить его во внешний файл!), Например:

var someGlobalVar=new SpecialType(); 
$(OnBodyLoad);
//or..
$(function() {
  //other stuff..
  OnBodyLoad();
});
//or...
$(document).ready(function() {
  //other stuff..
  OnBodyLoad();
});
2 голосов
/ 19 мая 2010

Возможно, jQuery мешает SpecialType, и поэтому вызов new SpecialType(); приводит к тому, что переменная someGlobalVar будет undefined.

Попробуйте использовать консоль, чтобы проверить наличие предупреждений, и попытайтесь создать экземпляр объекта SpecialType вручную.Это должно дать вам некоторое представление.

2 голосов
/ 19 мая 2010

Просто примечание.

// DOM Ready
$(document).ready(function() {});

// When the page has completely loaded
<body onload="someFunction()">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...