Jquery 正确的$.ajax调用语法

Jquery 正确的$.ajax调用语法,jquery,Jquery,我试图在我的网页中进行此ajax调用,但我经常在控制台上遇到此错误,jquery动画无法工作: <script type="text/javascript"> $(document).ready(function(e){ var dir = "<?php echo $_REQUEST['DirPath']; ?>"; var user = "<?php echo $_SESSION['login_user']; ?>";

我试图在我的网页中进行此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>`

$(文档).ready(函数(e){
var dir=“”;
var user=“”;
var datastr='DirPath='+dir+'&UserName='+user;
$.ajax({
类型:“POST”,
url:“RenderFiles.php”,
数据:datastr,
成功:功能(数据){
$(“#渲染文件”)。替换为(数据);
$(“#nav>li>a”)。单击(函数(){//binding onclick
if($(this).parent().hasClass('selected')){
$(“#nav.selected div”).slideUp(100);//隐藏弹出窗口
$(“#导航选定”).removeClass(“选定”);
}否则{
$(“#nav.selected div”).slideUp(100);//隐藏弹出窗口
$(“#导航选定”).removeClass(“选定”);
if($(this).next(“.subs”).length){
$(this).parent().addClass(“选定”);//显示弹出窗口
$(this.next(“.subs”).children().slideDown(200);
}
}
});
$(“导航li div,#drop”).mouseleave(函数(e){
$(“#nav li div”).hide();
$(“#文件#菜单”).addClass(“菜单活动”);
}); 
}
});
});
`
错误为:SyntaxError:语法错误


}));jquery.js:第2行

根据我的经验,该错误通常是由于将参数传递给jquery函数的格式不正确,jquery无法正确使用该函数而导致的。在您的特定情况下,最可能的候选变量是
datastr
变量。在进行ajax调用之前,请尝试将其输出到控制台,以查看它包含的内容。它可能不是
数据属性的正确格式。

您没有正确关闭所有内容。使用以下命令:

$.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变量的值。

这不是调用的问题。jquery元素click函数被调用了两次(也是在文档加载时)。删除冗余调用时,错误被删除:)

您确定jquery.js加载正确吗?如果您在地址栏中键入它的url,它是否显示jQuery库?如果不正确关闭东西,将导致我在回答中描述的问题——将无效参数传递给jQuery函数。