Чтобы запустить некоторый код после завершения .load()
, вам нужно поместить код в функцию завершения для .load()
. Операция загрузки является асинхронной, поэтому функция загрузки начинает загрузку содержимого, а затем сразу же возвращается, и выполнение JS продолжается (до завершения загрузки). Так что, если вы пытаетесь работать с недавно загруженным контентом, его там еще не будет.
Поскольку ваш код написан сейчас, у вас есть два блока кода, которые запускаются, когда готов исходный HTML-документ. Первый блок запускает операцию .load()
. Вторая операция предполагает, что .load()
уже выполнено, но еще не завершено, поэтому содержимое операции .load()
еще не доступно.
Вот почему .load()
принимает в качестве аргумента функцию завершения. Это функция, которая будет вызываться после завершения загрузки. См. соответствующий jQuery .load()
документ для получения дополнительной информации. Вот как будет выглядеть ваш код с функцией завершения.
$(function(){
$('a.pageFetcher').click(function(){
$('#main').load($(this).attr('rel'), function() {
// put the code here that you want to run when the .load()
// has completed and the content is available
// Or, you can call a function from here
});
// the .load() operation has not completed here yet
// it has just been started
});
});