我尝试写一个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;
});
答案 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);