// load content
var href = $(".mainNav li a").each(function() {
var href = $(this).attr('href');
if (hash == href.substr(0,href.length-5)) {
var toLoad = hash + ".html #content";
$("#content").load(toLoad)
}
});
Вышесказанное не имеет смысла. Для каждого "li a" внутри ".mainNav" вы загружаете некоторый удаленный сайт и помещаете его в "#content". Если у вас есть 4 якоря в ".mainNav", вы делаете 4 AJAX-запроса, но показывает только тот, который заканчивается последним (даже не гарантируется, что он последний ... это состояние гонки).
Возможно, вы захотите сделать это для события click
(в этом случае замените «каждый» на «клик», или хотите сделать это только для определенного элемента; в этом случае ограничьте его с помощью селектора, например *). 1005 * ": первый" , ": последний" или ": eq" .
Линия var toLoad = hash + ".html #content"
; будет работать, но не используя ожидаемое поведение.
Предполагая, что хеш является значением, таким как "http://www.google.co.uk",, в результате вы получите toLoad
, равное:
"http://www.google.co.uk.html #content"
Первая часть - это недействительный URL, который никогда не будет работать. Второй - это селектор jQuery, в который будет помещен ответ.
Вы, вероятно, после var toLoad = hash + " .html #content"
(обратите внимание на добавление пробела), однако "#content" должен быть уникальным на странице, поскольку идентификаторы никогда не должны дублироваться, поэтому это можно упростить до:
var toLoad = hash + " #content";
var toLoad = $(this).attr('href') + "#ajaxedContent";
страдает от той же ошибки, что и раньше, и, вероятно, должно быть var toLoad = $(this).attr('href') + " #ajaxedContent";
.
function loadContent() {
$("#content").load(toLoad,'',showNewContent())
}
Выше не будет работать, как вы ожидаете. Ваш вызов load предоставляет 3 аргумента:
- Переменная toLoad
- Пустая строка
- Результат showNewContent () (который не определен), а НЕ функция showNewContent, как вы, без сомнения, ожидаете.
Вероятно, должно быть:
function loadContent() {
$("#content").load(toLoad,'',showNewContent)
}
Исправление этих ошибок, мы надеемся, решит проблемы, с которыми вы столкнулись в IE.