Функция щелчка Jquery не загружает новый контент - PullRequest
0 голосов
/ 08 ноября 2011

По какой-то причине jquery не загружает новый html в div #textoPequeno. На самом деле он удаляет старый контент, насколько это возможно.

Вот HTML-код:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<link href="css/style.css" media="screen" rel="stylesheet" type="text/css">
 <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.min.js"></script>
<script type="text/javascript" src="include/javascript.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Opera</title>
</head>

<body>
    <div class="main">
        <div id="header">

            <h1 id="logo">
                <a href="#">Linux Logo</a>
            </h1>

            <ul>
                <li><a href="test.html">Home</a></li>
                <li><a href="test">Home</a></li>
                <li><a href="#">Home</a></li>
                <li><a href="#">Home</a></li>
                <li><a href="#">Home</a></li>
            </ul>

            <div id="player"></div>

        </div>
    <div id="imagen"></div>
    <h2 id="textoGrande"><p>Opera ahora<br /> mas acojedor...</p>
    </h2><h3 id="textoPequeno"><p>En su nueva versión, Opera apuesta por un nuevo diseño y pestañas visuales, un motor más veloz que incrementa su velocidad en un 40% frente a su anterior versión y un mejor soporte de estándares.</p>

    </h3></div>


</body></html>

И код JQuery

    $("li a").live("click", function(){
       $("#textoPequeno").load($(this).attr('href')+' .main');    
       return false;
});

Пожалуйста, проверьте живой образец: http://gabrielmeono.com/working/

EDIT:

Если я удаляю основную часть из кода javascript, страница не будет загружаться внутри div. Он останется таким, как есть.

Ответы [ 3 ]

2 голосов
/ 08 ноября 2011

избавиться от + ' .main'

$("li a").live("click", function(){
   $("#textoPequeno").load( $(this).attr('href') );    
   return false;
});

нормально, если в href есть контент для загрузки в # textoPequeno

1 голос
/ 08 ноября 2011

Ваш код в порядке, ваш HTML неверен.

Похоже, вы пытаетесь создать отдельные страницы, которые также могут загружаться через ajax.

Вы добавляете ' .main' к своему вызову .load(), что эквивалентно выбору '.main' из возвращенного содержимого. Если вы делаете это, все ваши html-страницы должны иметь элемент с class='main'.

Я бы предложил использовать id='main' вместо класса. Затем измените свой звонок на: $("#textoPequeno").load($(this).attr('href')+' #main');

0 голосов
/ 08 ноября 2011

rkw ответ правильный. Я бы добавил, что вы также можете переместить #main в фактическую href prop. Это может показаться не таким уж большим, но это уменьшит некоторые накладные расходы, и в случае сбоя вашего вызова AJAX (или по нескольким другим причинам) пользователь будет перенаправлен на фактический href - они будут отправлены в правильное место.

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