ASP.NET Master Page + pageLoad () = убивает jquery? - PullRequest
1 голос
/ 28 мая 2009

В моей MasterPage у меня есть ScriptManager, у которого есть ScriptReference к моему файлу jquery.js. Это всегда работало без проблем, все страницы с контентом, использующие jquery, работают нормально.

Недавно я добавил следующий блок сценариев JavaScript в конце моей главной страницы:

function pageLoad(sender, args) {<br> }

Просто добавив вышеуказанный метод pageLoad, код jquery не будет выполнен ни на одной из моих страниц контента. Почему просто наличие pageLoad на главной странице имеет такой эффект?

Заранее благодарим за понимание.

Ответы [ 4 ]

2 голосов
/ 28 мая 2009

Может оказаться полезным следующее обсуждение на странице загрузки.

http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/

1 голос
/ 22 апреля 2010

Возможно ли, что для визуализированной версии вашей страницы (или включенных файлов .js) уже определен метод pageLoad? Если это так, то на вашей странице может быть определен pageLoad дважды, что приведет к описанной вами проблеме.

1 голос
/ 28 мая 2009

Похоже, что использование Sys.Application.add_init () вместо document.ready () или pageLoad () на моей мастер-странице решило мою проблему.

Подробности о моей проблеме, вероятно, слишком длинны, но это может помочь кому-то другому, если я попытаюсь хотя бы вкратце рассказать о происходящем.

Моя главная страница имеет шаблон навигации с содержимым, который содержит элемент управления ASP.NET TreeView. Я хотел сохранить прокрученную позицию (в ней довольно много узлов) этого TreeView после постбэков. Для этого я присоединяю вызов к следующей функции js к событию onscroll элемента div, окружающего мой элемент управления TreeView:

function SetDivScrollPosition() {
var strCook = document.cookie;
if (strCook.length > 0) {
    var cookies = strCook.split(";");
    for (var i = 0; i < cookies.length; i++) {
        var mySplit = cookies[i].split("=");
            document.getElementById(mySplit[0].replace(" ", "")).scrollTop = mySplit[1];
    }
}

}

Однако у меня также есть другие прокручиваемые элементы div на других страницах контента, и я хотел также отслеживать эти позиции прокрутки после постбэков (полного или частичного). Итак, мне нужно было также вызвать SetDivScrollPosition () из функции document.ready () этих страниц содержимого.

0 голосов
/ 28 мая 2009

Почему вы не можете просто использовать:

$(document).ready(function() {
   // do that funky thing
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...