javascript - 在每个页面都只引用同一个js情况下如何根据不同的页面来执行不同的$(function(){})呢
ringa_lee
ringa_lee 2017-04-10 16:38:48
[JavaScript讨论组]
//moduleA.js
      var moduleA = (function(){
        })();
      $().on.("",moduleA.foo);

//moduleB.js
      var moduleB = (function(){
        })();
      $().on.("",moduleB.foo);

最后打包成一个min.js
但是每个页面都有一些$(function(){})要执行,
怎样根据不同的页面来执行不同的$(function(){})呢??

PS.另外感觉模块化与$(function(){})这种东西很冲突,因为这个东西不是一个模块,
以及那些$().on()事件绑定看起来也很不舒服,应该把他们放在那里?内联吗?如何优化?

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
黄舟

你把$(function(){})初始化代码放在不同的js中
在不同的页面引入这个js文件
例如
A页面,Ainit.js B页面 Binit.js
同时将不同的模块按页面划分,每个页面min自己需要的module
A页面

<script src="../script/jquery-2.1.3.min.js"></script>
<script src="../script/AModule.js"></script>
<script src="../script/Ainit.js"></script>

B页面

<script src="../script/jquery-2.1.3.min.js"></script>
<script src="../script/AModule.js"></script>
<script src="../script/Ainit.js"></script>

$(function(){})是用来执行初始化工作,执行页面上DOM元素事件绑定使用的
而不是通过它了模块化,$().on()事件绑定要放在和页面DOM相关的模块中

你可以把业务相同的逻辑封装在一个业务模块(LogicModule)中,
和页面DOM相关的逻辑,如事件绑定,封装在DOM模块(ViewModule)中
不同的模块通过第三者,例如自定义事件执行数据通讯,或者再ViewModule中引入LogicModule处理,
但是不要在LogicModule中引入ViewModule

天蓬老师

时间不足回答,提供几个关键词,给你学习吧
commonJS:一种js模块化的标准,nodejs在用
gulp:自动化构建工具
borwserify:将多个js打包成一个js的玩意儿

伊谢尔伦

最暴力的方法,通过location.href获得当前url,根据url的pattern决定执行那些代码

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号