Jquery.Ajax不起作用

时间:2012-08-05 15:55:41

标签: jquery ajax

我尝试写一个Jquery。 codeigniter中的Ajax。但是当我点击链接时,它不会发布内容,而是从一开始就加载所有页面。所有的起始动画再次显示。
我的ajax.js位于header.php头部分:

$("#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;
});

3 个答案:

答案 0 :(得分:2)

我认为您应该将return false放在click事件的末尾 -

$("#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;
});

答案 1 :(得分:0)

要在容器中加载一些代码,只需使用load方法即可。 类似的东西:

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

查看文档:{​​{3}}

删除“a”标记并使用例如。它不会触发超链接,您也不会停止传播。而不是“使用”:

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

单击跨度以进行加载时,您将获得“data-url”属性。

答案 2 :(得分:0)

尝试;

确保链接jquery;

<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);

而不是

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