Jquery ajax调用不起作用

时间:2011-08-05 09:00:22

标签: jquery

我正在尝试创建一个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>

3 个答案:

答案 0 :(得分:0)

  1. “GET”(您的type参数),需要是一个字符串:

    type: "GET",
    
  2. serialize()用于表单元素,而不是锚标记...你想用它实现什么目标?

  3. 我错过了一个(正如ace在他的回答中指出的那样),return false;在AJAX调用中,而不是在click处理程序中。 (添加了答案 - 完整性,不要偷走任何东西!)

  4. 对于不会停止代码段工作的问题,但应该修复:

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

答案 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>&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>