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

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

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

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

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

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

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

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

编辑

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

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

和HTML:

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

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

解决方法

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

_布局

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

我的看法

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

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

猜你在找的jQuery相关文章