从Orchard模块页面使用jQuery

我正在尝试使用搜索表单和按钮修改Orchard.Search部分,以便我想要看起来和行为.为此,我需要使用一些jQuery功能.

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

Script.Require("jQuery");

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

<script src="/Orchard.Web/Modules/Orchard.jQuery/scripts/jquery-1.4.2.js" type="text/javascript"></script>

看起来不错这就是jQuery库的位置,我可以从该位置下载它,而没有可能.我还在页面添加了一个小测试脚本,以查看jQuery是否正常工作:

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

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

</script>

但它从来没有被解雇,我得到这个脚本错误:未捕获ReferenceError:$未定义

我厌倦了这个,太麻烦了,但我想我做错了…

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

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

解决方法

那么你的脚本需要在包含jQuery之后出现,否则$是无意义的.您可以通过使用@using(Script.Foot){…}来加载您的脚本:
@using(Script.Foot()) {
    <script type ="text/javascript">
    //<![CDATA[
    $(document).ready(function () { 
        alert('page loaded');
    });
    //]]>
    </script>
}

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...