[英]Jquery ajax call not working
我正在尝试创建ajax调用,但是它不起作用,甚至没有禁用该链接。
我的Jquery:
$('table th a').click(function(e) {
var a = $(this).closest('a');
$.ajax({
type: GET,
url: a.attr('href'),
data: a.serialize(),
success:function(msg){
$('#formcontent').html(msg);
}
return false
});
我的HTML的一部分:
<div id="formcontent">
导航功能1功能2功能3功能4功能5
</div>
“ GET”(您的type
参数),必须为字符串:
type: "GET",
serialize()
适用于表单元素,而不适用于锚标签……您要尝试实现什么?
我错过了一个(正如王牌在回答中所指出的), return false;
在AJAX调用中,而不是在点击处理程序中。 (为提高回答的完整性而添加,而不是偷走王牌!)
至于不会停止摘要运行的问题,但应将其修复:
$(this).closest('a');
是完全多余的。 使用$(this)
代替。 而不是将处理程序绑定到多个元素(很多工作!),而是使用live()
或delegate()
将其绑定到单个元素
$('table').delegate('th a', 'click', function(e) { var a = $(this); $.ajax({ type: 'GET', url: a.attr('href'), data: 'something', success: function(msg) { $('#formcontent').html(msg); } return false }); });
您的return false
在您的ajax调用中,应该像这样
$('table th a').click(function(e) {
var a = $(this).closest('a');
$.ajax({
type: GET,
url: a.attr('href'),
data: a.serialize(),
success:function(msg){
$('#formcontent').html(msg);
}
});
return false;
});
尝试使用此代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<table>
<tr><th><a name="first" href="content.html">Test</a></th><th><a href="content.html" name="second">Test</a></th><th><a name="third" href="content.html">Test</a></th></tr>
<tr><td> </td><td> </td><td> </td></tr>
<tr><td> </td><td> </td><td> </td></tr>
<tr><td> </td><td> </td><td> </td></tr>
</table>
<div id="formcontent">
</div>
<script type="text/javascript">
$('table th a').click(function(e) {
e.preventDefault();
var a = $(this);
$.ajax({
type: 'GET',
url: a.attr('href'), /*content.html*/
data: a.serialize(),
success: function(msg) {
$('#formcontent').html(msg);
}
});
});
</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.