-1

Web ページ内でこの 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行目

4

3 に答える 3

0

私の経験では、このエラーは通常、jQuery が正しく使用するための正しい形式ではない引数を jQuery 関数に渡すことによって発生します。あなたの特定のケースでは、最も可能性の高い候補はdatastr変数です。ajax 呼び出しを行う前にコンソールに出力してみて、何が保持されているかを確認してください。プロパティの正しい形式ではない可能性がありdataます。

于 2013-04-13T13:09:26.153 に答える
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 変数の値を確認してください。

于 2013-04-13T13:09:36.067 に答える