繁体   English   中英

jQuery Ajax调用不起作用

[英]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> 
  1. “ GET”(您的type参数),必须为字符串:

     type: "GET", 
  2. serialize()适用于表单元素,而不适用于锚标签……您要尝试实现什么?

  3. 我错过了一个(正如王牌在回答中所指出的), return false; 在AJAX调用中,而不是在点击处理程序中。 (为提高回答的完整性而添加,而不是偷走王牌!)

至于不会停止摘要运行的问题,但应将其修复:

  1. $(this).closest('a'); 是完全多余的。 使用$(this)代替。
  2. 而不是将处理程序绑定到多个元素(很多工作!),而是使用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>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
</table>
<div id="formcontent">
&nbsp;
</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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM