我正在尝试在我的网页中进行此ajax调用但是我经常在控制台上出现此错误并且jquery动画无效:
<script type="text/javascript">
$(document).ready(function(e){
var dir = "<?php echo $_REQUEST['DirPath']; ?>";
var user = "<?php echo $_SESSION['login_user']; ?>";
var datastr='DirPath='+dir+'&UserName='+user;
$.ajax({
type: "POST",
url: "RenderFiles.php",
data: datastr,
success: function(data){
$("#RenderFiles").replaceWith(data);
$("#nav > li > a").click(function () { // binding onclick
if ($(this).parent().hasClass('selected')) {
$("#nav .selected div div").slideUp(100); // hiding popups
$("#nav .selected").removeClass("selected");
} else {
$("#nav .selected div div").slideUp(100); // hiding popups
$("#nav .selected").removeClass("selected");
if ($(this).next(".subs").length) {
$(this).parent().addClass("selected"); // display popup
$(this).next(".subs").children().slideDown(200);
}
}
});
$("#nav li div div,#drop").mouseleave(function(e) {
$("#nav li div div").hide();
$("#files_menu").addClass("menuactive");
});
}
});
});
</script>`
错误是:SyntaxError:语法错误
}); jquery.js:第2行
答案 0 :(得分:0)
根据我的经验,该错误通常是由于将参数传递给jQuery函数导致的,该函数的格式不正确,以便jQuery正确使用它。在您的特定情况下,最可能的候选者将是datastr
变量。尝试将其输出到控制台,然后再进行ajax调用以查看它所包含的内容。它可能不是data
属性的正确格式。
答案 1 :(得分:0)
你没有正确关闭所有东西。使用此:
$.ajax({
type: "POST",
url: "RenderFiles.php",
data: datastr,
success: function(data){
$("#RenderFiles").replaceWith(data);
$("#nav > li > a").click(function () {
if ($(this).parent().hasClass('selected')) {
$("#nav .selected div div").slideUp(100);
$("#nav .selected").removeClass("selected");
}else{
$("#nav .selected div div").slideUp(100); // hiding popups
$("#nav .selected").removeClass("selected");
if ($(this).next(".subs").length) {
$(this).parent().addClass("selected"); // display popup
$(this).next(".subs").children().slideDown(200);
}
}
});
}
});
还要确保RenderFiles.php
返回jQuery的可用格式。如果您仍然遇到问题,请检查您的js变量的值。
答案 2 :(得分:0)
具体来说这不是问题。 jquery元素单击函数被调用两次(也在文档加载时)。在删除冗余调用时,错误被删除了:)