デフォルトのテンプレートを使用して MVC 4 を作成しまし@Script.Render(~"bundles/jquery")
た@RenderBody()
。この投稿によると、これは、ページのレンダリングをブロックするスクリプトの読み込みを防ぐために推奨される実行順序です。
RenderBody()
ビューまたはセクションに小さな jQuery 呼び出しを追加したいと考えています。私のビューの上部には、次のように見えます。
<script type="text/javascript">
$(document).ready(function()
{
$("#eta_table").tablesorter({
headers: {
0: { sorter: false }
}
});
});
ただし、Error: '$' is undefined
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>
ただし、マスター レイアウト ビューを使用するすべてのページに対してスクリプトをロードする必要があるため、これはまだ間違っているようです。それは機能していますが、これが最善の方法ですか?