jQuery加载默认页面问题

时间:2010-08-17 13:46:43

标签: javascript jquery html ajax

我有这个页面加载报价。它有一个搜索表单,其中如果用户键入搜索关键字,它将通过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 个答案:

答案 0 :(得分:1)

新的结果不会被JavaScript确认,因为脚本只承认页面加载时的HTML。为了让你的函数能够“看到”通过AJAX函数生成的HTML,你需要使用他的Jquery实时函数http://api.jquery.com/live/

将当前的点击功能转换为类似

的功能
$('a#main').live('click', function() {
     $(this).addClass("current"); 
            $(".toggleDiv").slideUp(600);
                loadQuotes();
});