Краткий обзор структуры сайта:jQuery - Почему IE8 не нравится эта функция?
Главный индекс php, который обслуживает локально хранимые php-файлы через ajax. (если это звучит беспорядочно, это потому, что это так)
У меня есть функция в основном файле индекса, которую я вызываю из загруженных скриптов ajax, и работает отлично везде, кроме IE.
я не могу получить значимое сообщение об ошибке:
Invalid argument. jquery-1.4.2.min.js, line 144 character 219
NB Этот вопрос имеет непосредственное отношение к моей предыдущей: jQuery $el.position(...) is undefined
JQuery функции (index.php)
// nav
var $el;
var leftPos;
var newWidth;
var $mainNav = $("#navbar ul");
$mainNav.prepend("<li id='magic-line'></li>");
var $magicLine = $("#magic-line");
function navBar() {
// console.log('navBar start');
function checkActive() {
// console.log('check active');
// Hide magic line if nav bar has no active element
if($('#navbar ul').children('.active').length < 1) {
$magicLine.hide();
//console.log($('#navbar ul').children('.active').length < 1);
//console.log($('#magic-line'));
//console.log('hide');
}
else {
$magicLine.stop().animate({
left: $magicLine.css('left', $(".active a").css('left')),
width: $magicLine.width($(".active a").width())
});
}
}
checkActive();
$magicLine
.width($(".active a").width())
.css("left", $(".active a").position().left)
.data("origLeft", $magicLine.position().left)
.data("origWidth", $(".active a").width());
// $("#navbar ul li a").hover(function() {
// apply hover function to li instead and just just el to it's child
$("#navbar ul li").hover(function() {
// $el = $(this);
$el = $(this).children('a');
// leftPos = $el.position().left;
leftPos = $el.parent().position().left;
newWidth = $el.width();
$magicLine.stop().animate({
left: leftPos,
width: newWidth
}, 600);
}, function() {
if($('#navbar ul').children('.active').length < 1) {
$magicLine.stop();
checkActive();
} else {
$magicLine.stop().animate({
left: $magicLine.data("origLeft"),
//width: $magicLine.data("origWidth")
width: $magicLine.width($(".active a").width())
}, 600);
}
});
}
Это называется во всех моих сценариях, просто делая:
navBar();
но по какой-то причине это вызывает проблемы в IE, и я не вижу причин, почему это так.
Используйте хром или firebug, чтобы получить стек и посмотрите, где он не работает. –
спасибо, но это то, что в Chrome и Firefox отсутствуют сообщения об ошибках, так что это просто IE. – martincarlin87
Извините, подумав о проблеме, забыл о деталях вопроса в процессе. Забыл, что я сказал :) –