首页 > 解决方案 > 在 Ajax.success 上调用另一个脚本的函数

问题描述

我有一个视图,其中有一个脚本标记,我想使用另一个 JS 文件中存在的函数。如果我在同一个脚本文件中添加 AddScrollBar() 它可以工作,但我想在多个地方使用。所以我在site.js中有它。当页面被加载时,我可以看到 site.js 的脚本标签被加载。

用脚本查看

<script type="text/javascript"> 
function LoadXyz() {
        $.ajax({
            url: '/ABC/Xyz/' + @Model.Number,
            success: function (data) {
                LoadContainerData(data);
                AddScrollBar();
            }
        });
        $("#navMenu > li").removeClass("active");
        $("#Xyz").addClass("active");
    }

关于如何使用 site.js 中存在的 AddScrollBar() 的任何想法

标签: javascriptjquery

解决方案


如果您以这种方式插入文件,则可以调用其他文件(在本例中为 site.js)的函数:

    <script src="path/to/site.js"></script>
    <script>
    AddScrollBar();
    </script>

您将能够在 site.js 中调用函数和变量,但请记住,site.js 中的函数不会被提升(正如 DonCarlos 在评论中所说)所以这不起作用

    <script>
    AddScrollBar();//undefined
    </script>
    <script src="path/to/site.js"></script>
  • site.js 必须放在文档根目录中,浏览器可以访问它。因此,如果我们有一个文档根目录为/var/www/的文件夹结构,浏览器将无法访问/var中的文件。
  • 如果文件放在/var/www/site.js并且调用 site.js 的文件放在同一个文件夹中,我们可以只使用src="site.js"(相对路径)或src="http://example.com/site.js"(绝对路径)调用 site.js
  • 如果文件放在/var/www/scripts/site.js并且调用 site.js 的脚本放在/var/www/ 我们可以用src="/scripts/site.js"(相对路径)或src="http://example.com/scripts/site.js"(绝对路径)调用 site.js
  • 如果文件放在/var/www/site.js并且调用 site.js 的脚本放在/var/www/script/ 我们可以用src="../site.js"(相对路径)或src="http://example.com/site.js"(绝对路径)调用 site.js

推荐阅读