Html 包含时未调用Ajax函数
我有一个ajax函数,当ajax脚本包含在我的HTML页面中时,它不会运行,如下所示:Html 包含时未调用Ajax函数,html,ajax,jquery,Html,Ajax,Jquery,我有一个ajax函数,当ajax脚本包含在我的HTML页面中时,它不会运行,如下所示: <script type='text/javascript' src='ajax.js'></script> <body> <a class="a" href="#">clicky</a> </body> 但是,如果我将完全相同的脚本放在HTML页面的头部部分,那么它确实会运行 <body> <a class="
<script type='text/javascript' src='ajax.js'></script>
<body>
<a class="a" href="#">clicky</a>
</body>
但是,如果我将完全相同的脚本放在HTML页面的头部部分,那么它确实会运行
<body>
<a class="a" href="#">clicky</a>
</body>
为什么会发生这种情况,我如何修复它
<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>
<body>
<a class="a" href="#">clicky</a>
</body>
$(函数(){
$(“.a”)。单击(函数()
{
$.ajax({
类型:“POST”,
url:“1.php”,
数据:dataString,
cache:false,
成功:函数(html)
{
//东西
}
});
返回false;
});
});
我举了一个很好的例子。我看不出有什么问题,所以我猜可能是打字错误或是一些愚蠢的事情
<body>
<a class="a" href="#">clicky</a>
</body>
以下是我使用的示例代码:
<body>
<a class="a" href="#">clicky</a>
</body>
HTML:
//仔细检查这些路径
<body>
<a class="a" href="#">clicky</a>
</body>
}))
<body>
<a class="a" href="#">clicky</a>
</body>
PHP:
<body>
<a class="a" href="#">clicky</a>
</body>
这可能看起来很琐碎,但在外部
.js
文件中使用时是否删除了
标记
<body>
<a class="a" href="#">clicky</a>
</body>
ajax.js
文件的内容应该是:
<body>
<a class="a" href="#">clicky</a>
</body>
我的印象是,当您提到“完全正确”时,您在ajax.js
文件中保留了完整的脚本标记
<body>
<a class="a" href="#">clicky</a>
</body>
如果这仍然不起作用。尝试添加一个
警报(“hello”)代码>行在ajax.js
前面,查看它是否运行。你是说它是通过ajax包含的?如果没有,为什么不把它放在头上呢?上面的ajax脚本是在HTML页面中调用的,就像我上面所说的那样。那样不行。它只有直接放在头部才有效。为什么?@Sev-脚本(作为外部文件)是在jquery之后还是之前包含?@Sev-确定没有发生任何javascript错误吗?可能是ajax.js
脚本与HTML页面不在同一目录中。测试如果在浏览器中键入到ajax.js
的完整URL会发生什么。例如,如果您编写的HTML页面位于http://localhost/index.html
,那么您在http://localhost/ajax.js
?您使用如下方式包含javascript:?是的,这正是我在文件中输入的html:呵呵,我犯了一个愚蠢的错误,但您发现了!干得好:)没问题。快乐的脚本!:)
<body>
<a class="a" href="#">clicky</a>
</body>