在Asp.NETMVC中,是否可以将单个jQuery文档就绪事件包装在脚本包中?
为了避免对Asp.Net MVC脚本包中的每个文件多次调用jQuery.ready()事件,是否可以将ready事件包装在整个包中 以下每个文件都包含$(document).ready(function(){}代码,该代码围绕着在Asp.NETMVC中,是否可以将单个jQuery文档就绪事件包装在脚本包中?,jquery,asp.net-mvc,bundling-and-minification,Jquery,Asp.net Mvc,Bundling And Minification,为了避免对Asp.Net MVC脚本包中的每个文件多次调用jQuery.ready()事件,是否可以将ready事件包装在整个包中 以下每个文件都包含$(document).ready(function(){}代码,该代码围绕着 bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js",
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/core.js",
"~/Scripts/application.js",
"~/Scripts/controls.js",
"~/Scripts/custom.js"));
我可以创建两个js文件,一个包含$(document).ready(function(){),另一个只包含一个右括号。然后将这些文件添加到现有捆绑包的开头和结尾,但是有更好的方法吗
已经要求CoffeScript连接文件,但我无法将解决方案轻松转换为Asp.Net绑定。如果您正在查看您编写的JavaScript文件(而不是
jquery-{version}.js
),那么请创建一个可从您在页面上调用的文件外部公开访问的方法
var Application = (function () {
// All your code
function init() {
// All your code that you have inside $(document).ready()
}
return {
init: init
};
}());
对所有文件执行上述操作,然后在任何需要它的页面上,或者在您的_布局页面(如果要在每个页面上运行)的底部都有以下内容
<script type="text/javascript">
$(document).ready(function () {
Application.init();
// etc for the other files.
});
</script>
$(文档).ready(函数(){
Application.init();
//等其他文件。
});
你不能简单地这么做。你需要在JS中使用模块模式来实现这一点。这种方法将关闭该文件中其他所有内容的作用域。因此,请注意,如果你在这些文件中确实有一些内容要在文件外访问,你需要将其添加到return
块中,如init.I这是一个很好的习惯,因为它可以最大限度地减少您在全球空间中的足迹。我想这是JavaScript模块模式吗?有没有您推荐的在线教程可以帮助我提高速度?如果您没有时间发布任何我理解的内容,并感谢您迄今为止的帮助。正确。我没有使用教程,我读了“专家JavaScript”一书马克·E·达格特(MarkE.Daggett)在编写更干净、更具可扩展性的JavaScript方面积累了大量的技能和实践。当然,这是在JavaScript之后:好的部分。太棒了。我来看看。