jQuery загрузить страницу по умолчанию проблема - PullRequest
0 голосов
/ 17 августа 2010

У меня есть эта страница, которая загружает цитаты. Он имеет форму поиска, в которой, если пользователь вводит ключевое слово для поиска, он загружает результаты через ajax. Теперь, если я нажму на ссылку, которая должна загрузить страницу по умолчанию с цитатами, а не страницу результатов поиска, ничего не произойдет.

Если я нахожусь на домашней странице / странице по умолчанию и нажимаю на ссылку, она отображает случайную цитату, но как только она отображает страницу поиска, если я нажимаю на ссылку для отображения случайной цитаты, ничего не происходит. Firebug показывает, что функция не выполняется.

JQuery код:

            function loadQuotes() {
                $("#bquote").load("quotes_in.php");
}

     $("a#main").click(function() {
                $(this).addClass("current"); 
                $(".toggleDiv").slideUp(600);
                    loadQuotes();
                 });
                loadQuotes();  //call it once on load

            $(".bsearch").keydown(function() {
                     //create post data
                      var postData = { 
                        "search" : $(this).val()
                      };

                      //make the call
                      $.ajax({
                        type: "POST",
                        url: "quotes_in.php",
                        data: postData, //send it along with your call
                        success: function(response){
                                setTimeout(function() {
                                $('#left').html(response);
                                    $("div#smore").hide();
                                }, 250);    

                        }
                      });

                })

HTML:

             <!-- Begin Left Column -->
                <div id="left">
                     <!-- Begin Panel -->
                    <div class="check">
        <p><input type="checkbox" value="Quote" name="quote" id="quote" checked /> <label for="quote">Quote</label></p>
    <p><input type="checkbox" value="Reference" name="reference" id="reference" checked /> <label for="reference">Reference</label></p>
            </div>
         <!-- End Panel -->
          <!-- Begin Quote -->
        <blockquote id="bquote">
        </blockquote>
                                                 <!-- End Quote -->

                                        </div>
                                 <!-- End Left Column -->

  <!-- Begin Naviagtion -->
         <div id="navigation">

             <ul>
                <li><a id="main">Another?</a></li>
                <li><a id="bsearch">Search</a></li>
                <li><a id="babout">About</a></li>
                <li><a id="bcontact">Contact</a></li>
             </ul>   

         </div>
         <!-- End Naviagtion -->

PHP поиск:

public function formatSearch($row, $search) 
            {
                $cQuote =  $this->highlightWords(htmlspecialchars($row['cQuotes']), $search);

                    return "<div class=\"swrap\">"
                . "<p id=\"s_quotes\"><img src=\"image/list1.png\" alt=\"b\" style=\"position:relative; top:2px;\">&nbsp;" . $cQuote . "&nbsp;</p>"
                . "<div id=\"smore\"><p id=\"s_arabic\">" . $this->h($row['cArabic']) . "</p>"
                . "<p id=\"s_author\"><b>~</b>&nbsp;" . $this->h($row['vAuthor']) . "</p>"
                . "<p id=\"s_reference\"><span class=\"source\">Source:</span> " . $this->h($row['vReference']) . "</p></div></div>"
                . "<img src=\"image/sep.png\" style=\"position:relative; left: 600px;\">";
            }

1 Ответ

1 голос
/ 17 августа 2010

Новые результаты не будут подтверждаться JavaScript, так как скрипт только распознает, какой HTML присутствует при загрузке страницы. Чтобы ваша функция могла «видеть» HTML, сгенерированный с помощью функций AJAX, вам необходимо использовать живую функцию Jquery http://api.jquery.com/live/

Преобразуйте текущую функцию щелчка в нечто подобное

$('a#main').live('click', function() {
     $(this).addClass("current"); 
            $(".toggleDiv").slideUp(600);
                loadQuotes();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...