Jquery .load «не может получить»

0

Я использую.load для переключения содержимого в div #content, но когда я нажимаю на ссылку, она выводит меня на белую страницу с надписью "can not get/index" или что-то еще. Начальное содержимое загружается, поэтому я знаю первые три строки работы кода. Любые идеи, почему я не могу получить другие мои файлы?

Здесь мой HTML

<div id="nav">

    <ul>
        <li><a href="index">Home</a></li>
        <li><a href="portfolio">Portfolio</a></li>
        <li><a href="about">About</a></li>
    </ul>

</div>

И JQuery

$(document).ready(function() {
    // initial
    $('#content').load('content/index.html');

    // handle menu clicks
    $('ul#nav li a').click(function() {
        var page = $(this).attr('href');
        $('#content').load('content/' + page + '.html');
        return false;
    });
});
  • 0
    это Portfolio.html или portfolio.html ?
  • 0
    Проверьте правильность запрошенного URL. Вы можете сделать это с помощью Firebug или аналогичных инструментов разработчика. Нажмите F12 в браузере, чтобы вызвать инструменты разработки.
Показать ещё 8 комментариев
Теги:

3 ответа

2
Лучший ответ

Вот ответ -

$(document).ready(function() {
    // initial
$('#content').load('content/index.html');

// handle menu clicks
$('div#nav ul li a').click(function() {
    var page = $(this).attr('href');
    $('#content').load('content/' + page + '.html');
    return false;
});
});

В скором времени #nav является идентификатором div не ul поэтому $('ul#nav li a'). должно быть $('div#nav ul li a'). точнее $('div#nav > ul > li > a').

Если вы хотите, чтобы анимация была похожа на Fade, попробуйте это -

$('div#nav ul li a').click(function() {
    var page = $(this).attr('href');
    $('#content').fadeOut('fast', function(){
        $('#content').load('content/' + page + '.html', function(){
            $('#content').fadeIn('fast');
        });
    });
    return false;
});

Но для скользящей анимации это будет немного сложно, потому что вам нужно что-то делать -

  1. Кулак слайда слева от анимации ширины
  2. Затем возьмите div в правый конец окна, используя css left
  3. Загрузите его и сделайте ширину нормальной
  4. измените left чтобы он снова скользил влево.

Это даст вам пространство между анимациями, но если вы хотите безразличную анимацию, вам придется использовать больше div и немного больше логик. Счастливые эксперименты.. :)

  • 0
    Я не могу поверить, что я пропустил это! Спасибо большое!
  • 0
    Немного не по теме ... Но как мне тогда сделать переходы между страницами более плавными? как летать слева? или исчезать?
Показать ещё 1 комментарий
0

Согласно вашему правлению

У вас неправильный селектор jQuery, это должно быть -

$('#nav ul li a').click...
  • 0
    return false; из кода должен позаботиться об этой проблеме
0

Когда содержимое загружается динамически, действия над элементами html не будут улавливаться прямой.click() function So:

Используйте $(document).on('click', 'ul#nav li a', function() {

Вместо $('ul#nav li a').click(function() {

Это работало для меня

Ещё вопросы

Сообщество Overcoder
Наверх
Меню