2011-02-25 59 views
12

我试图修改Orchard.Search部分与搜索窗体和按钮的外观和行为,如我所愿。为此,我需要使用一些jQuery功能。使用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库的地方,我可以从该位置下载它,而无需probs。我还添加在页面中的小测试脚本只是为了看看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> 
} 
+1

请使用与jQuery的问题 “jQuery的” 标签。谢谢。 – 2011-02-25 16:51:11

回答

25

那么,你的脚本需要在包含jQuery后出现,否则$是没有意义的。您可以通过使用@using(Script.Foot)surrouding它添加脚本{...}:

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

当然,这是问题所在。但是你建议使用的(Script.Foot)代码会崩溃:CS1674:'method group':using语句中使用的类型必须隐式转换为'System.IDisposable',这很奇怪。 – 2011-02-26 12:26:07

+0

啊,让它工作! @using(Script.Foot())缺少括号:)。非常感谢您的帮助。 – 2011-02-26 12:30:13

+0

谢谢,我修复了这个示例。 – 2011-02-28 18:43:49