包含时不调用Ajax函数

时间:2010-05-28 23:09:24

标签: html ajax jquery

我有一个ajax函数,当我的HTML页面中包含ajax脚本时,它不会运行,如下所示:

<script type='text/javascript' src='ajax.js'></script>

但是,如果我将完全相同的脚本放在HTML页面的 head 部分,那么它确实会运行。

为什么会发生这种情况,我该如何解决?

<script type="text/javascript"> 
        $(function() {

            $(".a").click(function() 
            {    
                  $.ajax({
                     type: "POST",
                     url: "1.php",
                     data: dataString,
                     cache: false,
                     success: function(html)
                       {
                           //stuff
                       }  
                   });

                return false;
            });

        });

</script> 

2 个答案:

答案 0 :(得分:1)

这可能看似微不足道,但在外部<script>文件中使用时,您是否删除了.js代码?

ajax.js文件的内容应

$(function() {
  $(".a").click(function() {    
    $.ajax({
      type: "POST",
      url: "1.php",
      data: dataString,
      cache: false,
      success: function(html)
      {
        //stuff
      }  
    });
    return false;
  });
});

我的印象是,当您提到“完全”时,您将脚本标记保留在ajax.js文件中。

此外,如果这仍然不起作用。尝试在alert("hello");顶部添加ajax.js行,然后查看是否全部

运行

答案 1 :(得分:0)

我做了一个适合我的例子。不能看到任何问题,所以我猜它是一个错误或傻事。

这是我使用的示例代码:

HTML:     //仔细检查这些路径               

<body>
<a class="a" href="#">clicky</a>
</body>

使用Javascript:

$(function() {
// i noticed you put .a here instead of a, i am assuming you are referring the class
$(".a").click(function() 
{    
    alert("1");
      $.ajax({
         type: "POST",
         url: "1.php",
         data: "html",
         cache: false,
         success: function(data)
           {
         //stuff
         $("body").html(data);
           }  
       });

    return false;
});

});

PHP:

echo 'bar';