2012-08-05 57 views
0

我試着寫一個Jquery。 Ajax在codeigniter中。但它不會發布內容,而是在點擊鏈接時從頭開始加載所有頁面。因此所有開始的動畫都會再次顯示。
我ajax.js是header.php文件頭部分中:Jquery.Ajax不起作用

$("#sidebar-content ul li a").click(function(e){ 
    e.preventDefault(); 
    var target_url = $(this).attr('href'); 
    $.ajax({ 
     url: target_url, 
     type: 'POST', 
     data: target_url, 
    success: function(response) { 
       $('#content').html(response.msg); 
      } 
    }); 
return false; 
}); 

Menu.php文件是:

<!-- SIDEBAR --> 

<div id="sidebar"> 
    <div id="sidebar-content"> 
      <!-- MENU --> 
     <ul id="menu"> 
     <li class="current"><a href="<?php echo site_url('home'); ?>">ANASAYFA</a></li> 
     <li><a href="<?php echo site_url('about'); ?>">HAKKIMIZDA</a></li> 

我想在主網頁內容只是分工的變化。我如何糾正代碼?

編輯1:

現在可以使用。但我希望使用#page而不是#content。

$("#sidebar-content ul li a").click(function(e){ 
    e.preventDefault(); 
    $('#page').load(this.href); 
    return false; 
}); 
+0

?你只是想在'#content'中加載響應? – davidbuzatto 2012-08-05 16:00:32

+0

是的我只想要內容字段中的數據。我必須做什麼 ? – ytsejam 2012-08-05 16:01:17

+0

發送'target_url'作爲數據有什麼意義? – 2012-08-05 16:02:50

回答

2

我想你應該有把return falseclick活動結束 -

$("#sidebar-content ul li a").click(function(e){ 
    // your existing stuff here 

    return false; // or e.preventDefault(); 
}); 

下面是完整的代碼試試這個

$("#sidebar-content ul li a").click(function(e){ 
    e.preventDefault(); 
    $('#content').load(this.href); 
    return false; 
}); 
+0

是的,當我讀到這個問題時,這是我的第一個想法。這應該解決它。假設沒有什麼奇怪的事情發生在點擊上。 – 2012-08-05 16:29:13

+0

是的,那裏有回報錯誤。它到底是什麼? – ytsejam 2012-08-05 16:32:30

+0

好吧,我檢查了你的代碼,並發現你在「url」和「data」字段中使用了target_url。你爲什麼這麼做? – 2012-08-05 16:36:48

0

要在容器中加載一些代碼,只需要使用load方法。 喜歡的東西:

$("#content").load("your url here"); 

看看在文檔:http://api.jquery.com/load/

刪除「」標籤,並使用一個跨度的例子。它不會觸發超鏈接,並且您不會停止傳播。而不是「a」使用:

<span data-url="your url...">link</span> 

當您單擊跨度進行加載時,您將獲得「data-url」屬性。

0

嘗試;

請確保你鏈接jquery like;

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> 

和內包裝您的JavaScript;

$(document).ready(function() { 

}); 

裏面的部分網頁,使您的代碼運行。

$('#content').text(response.msg); 

,而不是你爲什麼使用在`data`領域的URL

$('#content').html(response.msg);