2012-03-13 82 views
0

這個問題讓我瘋狂......我通過Ajax調用一個PHP文件並將其解析爲我的HTML內容。我必須這樣做才能擁有動態內容,而不必刷新頁面。JQuery不支持解析的內容

我的問題是,解析的代碼將不會執行任何jQuery的東西。例如在PHP文件中需要一個Jquery滑塊。但它被解析爲普通的HTML,JQuery似乎並不認識它。

這裏有一個例子:

HTML文件:

<html> 
    <head> 
     <script src="jquery-1.7.1" type="text/javascript"></script> 
     <script src="jscroller-0.4.js" type="text/javascript"></script> 

     <script type="text/javascript"> 
      $(document).ready(function() 
      { 
       // Add Scroller Object 
       $jScroller.add("#scroller_container","#scroller","right",1); 
       // Start Autoscroller 
       $jScroller.start(); 
      }); 
     </script> 


     <script type="text/javascript"> 
      function showGet(str) 
      { 
       if (str=="") 
       { 
       document.getElementById("center").innerHTML=""; 
       return; 
      } 

      if (window.XMLHttpRequest) 
      {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp=new XMLHttpRequest(); 
      } 
      else 
      {// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 

      xmlhttp.onreadystatechange=function() 
      { 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 
        document.getElementById("content").innerHTML=xmlhttp.responseText; 
       } 
      } 

      xmlhttp.open("GET","content.php?q="+str,true); 
      xmlhttp.send(); 
      } 
     </script> 
    </head> 

    <body> 
     <div id="content"> 
      <input type="button" onclick="showGet(1)" value="showGet"> 
     </div> 

     <div id="scroller_container"> 
     <div id="scroller"> 
      ...[Content]... 
     </div> 
     </div> 
    </body> 
</html> 

這裏的content.PHP文件:

<?php 

    echo " 
     <div id=\"scroller_container\"> 
      <div id=\"scroller\"> 
       ...[Content]... 
      </div> 
     </div> 
     " 

?> 

執行時,HTML有一個按鈕。如果您點擊該按鈕,它會將content.php解析爲<div id="content></div>。 PHP包含與HTML相同的<div id="scroller" ....

HTML div的工作原理,不是PHP文件。爲什麼????我如何才能使它工作?

許多thx提前的所有提示!

+2

你爲什麼不使用jQuery的Ajax功能?他們實現起來要容易得多,另外他們還從內置的Ajax結果中執行腳本。 – 2012-03-13 21:31:54

+0

我想但我想我錯過了所需的知識。你有一個簡單的例子嗎? – 2012-03-13 21:33:05

+1

該手冊有一些例子:http://api.jquery.com/jQuery.ajax/ – 2012-03-13 21:34:00

回答

1

加載內容jQuery的AJAX可以簡單的使用負載以下()方法:

http://api.jquery.com/load/

/* loads a file into id=content and replaces exisitng html*/ 
$('#content').load('path/to/server/file', function(){ 
    /* new content exists, intialize event handling 
    and plugins for new html here*/ 


}) 
+0

Wonderfull!那做了這個工作。首先要問你們。浪費了很多時間....非常感謝! – 2012-03-13 22:04:29

0

要到jQuery函數動態添加的信息訪問,你必須使用委託()或() - 使用

http://api.jquery.com/on/ http://api.jquery.com/delegate/