在MVC布局视图中加载jQuery的适当位置

前端之家收集整理的这篇文章主要介绍了在MVC布局视图中加载jQuery的适当位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用默认模板创建了一个MVC 4,其中@ Script.Render(〜“bundles / jquery”)在@RenderBody()之后调用。根据 this帖子,这是建议的执行顺序,以防止加载脚本阻止页面的呈现。

我想在我的视图或我的RenderBody()部分添加一个小jQuery调用。看起来像这样,在我的看法的顶部:

<script type="text/javascript">
$(document).ready(function()
{
    $("#eta_table").tablesorter({
        headers: {
            0: { sorter: false }
        }
    });
});

但是,这将总是抛出错误错误:’$’是未定义的,因为jQuery不加载,直到RenderBody()之后。

我不能想象这是一个新的问题,它似乎是一个相当普遍的任务…任何建议如何这应该处理?

作为参考,这里是加载jQuery的地方:

@Scripts.Render("~/bundles/jquery")
    @RenderSection("scripts",required: false)
</body>

编辑

我最终将脚本移动到我的scripts.js文件,并将其加载到下面的jQuery布局页面,像这样:

bundles.Add(new ScriptBundle("~/bundles/custom").Include(
                    "~/Scripts/Custom/tablesorter.js","~/Scripts/Custom/scripts.js"));

和HTML:

@Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/custom")
    @RenderSection("scripts",required: false)
</body>

除了这似乎仍然是错误的,因为现在的脚本将不得不加载使用主布局视图的每一个页面。它的工作,但是,这是最好的方法吗?

解决方法

在所有其他库脚本下创建一个新的部分MyScript

_布局

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts",required: false)
@RenderSection("MyScripts",required: false)

我的看法

@section MyScripts {
    <script type="text/javascript">
        $("#eta_table");
        ...
    </script>
}

现在你的自定义页面脚本只有加载jQuery后加载一次。

原文链接:https://www.f2er.com/jquery/183657.html

猜你在找的jQuery相关文章