2012-03-28 120 views

回答

1

$.load()$.ajax()一個方便的方法,並且默認替換選擇的HTML。爲了獲得更多的靈活性,可以使用另一種方法,如$.get,它可以讓您訪問返回數據並且不會操作DOM。然後,您可以追加,而不是取代

http://api.jquery.com/jQuery.get/

$("#post_button").click(function(){ 
    $.get("<?php echo SITEURL; ?>/newpost.php", data, function(returnData){/* assuming your data var is data to send to server*/ 
      $("#parent-post").append(returnData); 
      special_functions();             

    }); 

}); 
0

最簡單的可能是將遠程內容加載到div的子元素而不是div本身。請注意我在jquery中所做的更改(必須調用要加載內容的元素的加載)。

<div id="parent-post"> 
Lorem ipsum dolor sit amet. 
<div id="inner_div"></div> 
</div> 

<script type="text/javascript"> 
$("#post_button").click(function(){ 
    $("#inner_div").load("<?php echo SITEURL; ?>/newpost.php", 
         data, special_functions); 

}); 

</script> 
0

凡在這裏被定義load方法?如果你期待它是jQuery load那麼你應該以這種方式使用它。

$(element).load('url'); 

既然你想要的內容要追加,而不是取代然後load是用正確的方法。使用任何其他方法,如get,postajax從php獲取內容,然後將其附加到所需的容器中。

$.get("<?php echo SITEURL; ?>/newpost.php", function(response){ 
    $("#parent-post").append(response); 
    special_functions(); 
}); 
0
$.getJSON("<?php echo SITEURL; ?>/newpost.php", function(data){  
    $("#parent-post").append(data);   
     special_functions(); 

}); 

其中的getJSON可以和$ .get,$。員額爲好。

0

在這裏你去。由於AJAX從服務器中提取數據,它使用的異步行爲,這意味着你需要給它一個回調函數來告訴它時,它得到的數據做什麼:

 $("#post_button").click(function(){ 
    $.post("<?php echo SITEURL; ?>/newpost.php", data, function(result) { 
     $("#parent-post").append(result); 
     special_functions(); 
     }); 
}); 

相關問題