0

我创建了一个组合 ajax 选择菜单并在 localhost 上运行它。我只是尝试将文件移动到将其设置为模板的 wordpress 配置中,但由于 .js 文件调用其他文件的路径,我遇到了问题。

有没有办法可以调用直接路径?JS 看起来像这样:

    $(document).ready(function(){
        $("select#direction").attr("disabled","disabled");
        $("select#route").change(function(){
        $("select#direction").attr("disabled","disabled");
        $("select#direction").html("<option>wait...</option>");
        var id = $("select#route option:selected").attr('value');
        $.post("select_direction.php", {id:id}, function(data){
            $("select#direction").removeAttr("disabled");
            $("select#direction").html(data);
        });
    });
});

我想从 wordpress 主题文件夹/includes/select_direction.php 中调用它

该 JS 文件也存在于包含文件夹中。

4

2 回答 2

0

您可以使用从网站文档根目录直接到要调用的文件的路径。可能是这样的:

"/theme_folder/includes/select_direction.php"

任何以斜杠“/”开头的路径都是源自文档根目录的路径。如果路径相对于您的 JavaScript 代码所在的页面,您可以使用点-点“..”来表示一个目录:

"../../theme-folder/includes/select_direction.php"

如果你想从你的 PHP 脚本中传递这个路径,最好的选择是把路径放在一个 HTML 元素属性中:

<body data-script-path="/theme_folder/includes/select_direction.php">

然后在您的 JavaScript 代码中,您可以通过以下方式获取路径:

var path = $("body").data("script-path");

有很多方法可以将数据从服务器端传递到客户端,您可以使用 PHP 解析 JavaScript——但这是一个丑陋的解决方案。HTML5 数据属性更加清晰。

于 2012-11-20T18:17:41.543 回答
-1

JavaScript 代码不知道它在包含文件夹中。它运行在它运行的页面所在的任何位置。

因此,您可以像使用页面所在位置的任何相对路径一样引用文件。

于 2012-11-20T18:10:54.583 回答