我正在尝试创建一个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">
Navn
特色1
特色2
特色3
特色4
特色5
</div>
答案 0 :(得分:0)
“GET”(您的type
参数),需要是一个字符串:
type: "GET",
serialize()
用于表单元素,而不是锚标记...你想用它实现什么目标?
我错过了一个(正如ace在他的回答中指出的那样),return false;
在AJAX调用中,而不是在click处理程序中。 (添加了答案 - 完整性,不要偷走任何东西!)
对于不会停止代码段工作的问题,但应该修复:
$(this).closest('a');
完全是多余的。请改用$(this)
。$('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
});
});
答案 1 :(得分:0)
你的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;
});
答案 2 :(得分:0)
尝试使用此代码
<!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>