Загрузка элементов в DOM с помощью jQuery - PullRequest
0 голосов
/ 25 июня 2010

У меня есть быстрый вопрос, на который, я уверен, у некоторых из вас есть ответ, позвольте мне объяснить.
Я работаю над очень простым веб-сайтом, статическим контентом, чистым HTML и CSS, и некоторымиjavascript для облегчения жизни каждого.
На сайте есть заголовок, навигация, боковая панель и нижний колонтитул, и хотя сайт статический, я подумал, что мог бы использовать что-то вроде ".load ()" для загрузки файлов HTML,для навигационной панели, боковой панели и нижнего колонтитула.
Я использую jQuery, и я понял, что теги привязки в загружаемых файлах ведут себя не так, как я ожидаю.
Например,Я хотел использовать «protectDefault ()», чтобы контролировать свои ссылки, и он работает только с тегами привязки, жестко закодированными на каждой странице HTML, с тегами привязки, которые являются частью файла, который был загружен, в обход «protectDefault () "все вместе.
У меня недостаточно опыта, чтобы понять, почему, хотя после некоторых исследований я понял, что это связано с DOM и элементами, которые я добавляю в него.

Буду признателен за любую помощь.
Спасибо

Ответы [ 2 ]

3 голосов
/ 25 июня 2010

Скорее всего, происходит то, что вы настраиваете обработчики событий до загрузки содержимого AJAX. Обработчики событий, такие как click и т. Д., Будут применяться только к элементам, существующим в DOM на данный момент, которые, к сожалению, не могут включать ваш заголовок, нижний колонтитул, ссылки навигационной панели и т. Д.

Извлечение jQuery live и jQuery делегат , чтобы делать то, что вы хотите, или настроить обработчики после того, как весь контент был загружен через AJAX.

2 голосов
/ 25 июня 2010

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

http://api.jquery.com/live/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...