立即执行函数问题

 

 

<html>
<body>
    <a>我是好人</a>
    <script> 
        var module1 = (function (mod) {
            mod.a = $("a").html();
            mod.show = function () {
                alert(mod.a);
            }
            return mod;
        })(window.module1 || {});
        $(function () {
            module1.show();
        })
    </script>
</body>
</html>
 
要想正确获取a中的html,必须将立即执行函数放到html后面
但是,一般页面开发,习惯性的把js代码放在页头

<html>
<head>
<script> 
var module1 = (function (mod) {
mod.a = $("a").html();
mod.show = function () {
alert(mod.a);
}
return mod;
})(window.module1 || {});
$(function () {
module1.show();
})
</script>
</head>
<body>
<a>我是好人</a>
</body>
</html>

就会导致页面dom元素还未加载的时候就执行了定义的函数,访问不到a中元素

想到的解决办法

<html>
<head>
<script> 
var module1 = (function (mod) {
mod.init = function () {
mod.a = $("a").html();
}
mod.show = function () {
alert(mod.a);
}
return mod;
})(window.module1 || {});
$(function () {
module1.show();
})
</script>
</head>
<body>
<a>我是好人</a>
</body>
</html>

 

您有什么好的建议吗
推荐大家读下这篇关于javascript模块化管理的文章

转载于:https://www.cnblogs.com/shihao316558512/p/9737043.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值