使用Orchard模块页面中的jQuery

Joh*_*rth 12 jquery orchardcms

我正在尝试使用搜索表单和按钮修改Orchard.Search部分,以便按照我的意愿查看和操作.为此,我需要使用一些jQuery功能.

我将其添加到Search.SearchForm.cshtml文件的标题中:

Script.Require("jQuery");
Run Code Online (Sandbox Code Playgroud)

我可以从页面的输出中看到添加了jquery,位于html的底部,就在结束标记之前:

<script src="/Orchard.Web/Modules/Orchard.jQuery/scripts/jquery-1.4.2.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

看起来很好.这就是jQuery库的地方,我可以从没有probs的那个位置下载它.我还在页面中添加了一个小的测试脚本,以查看jQuery是否正常工作:

<script language="javascript" type ="text/javascript">

$(document).ready(function () { 
  alert('page loaded');
});

</script>
Run Code Online (Sandbox Code Playgroud)

但它永远不会被解雇,我得到这个脚本错误:未捕获的ReferenceError:$未定义

我已经厌倦了这个,太麻烦了,但我想我做错了......

编辑:添加了jquery标记并尝试了关于Script.Foot()的建议答案,这似乎有效:

@using(Script.Foot()) {
    <script type ="text/javascript">
    //<![CDATA[
        $(document).ready(function () {
            alert('page loaded');
        });
    //]]>
    </script>
}
Run Code Online (Sandbox Code Playgroud)

Ber*_*Roy 25

好吧,你的脚本需要在包含jQuery之后出现,否则$是没有意义的.您可以使用@using(Script.Foot){...}来覆盖它来添加脚本:

@using(Script.Foot()) {
    <script type ="text/javascript">
    //<![CDATA[
    $(document).ready(function () { 
        alert('page loaded');
    });
    //]]>
    </script>
}
Run Code Online (Sandbox Code Playgroud)