jquery不能有多个匿名函数自执行?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div{ width: 100px; height: 100px; }
        .box1{ background-color: red; }
        .box2{ background-color: yellow; }
    </style>
    <script type="text/javascript" src="jquery.js"></script>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>

    <script>
        $(function(){
            (function(){
                $('.box1').click(function(){
                    alert('red');
                })
            })()

            (function(){
                $('.box2').click(function(){
                    alert('yellow');
                })
            })()
        })
    </script>
</body>
</html>

代码就是这样

clipboard.png

点击红色 能正常弹出弹框 下面的报错 这个错误是什么原因?

阅读 3.9k
5 个回答

后面不想加分号,那就把代码块使用花括号包起来。
建议了解关键字“javascript自动分号插入机制”

第一个函数结尾加分号

( )( )( )( ),四个括号连着写,系统没法判断哪里结束。
PS:养成不省分号的习惯,可以避免很多意想不到的错误~

第二行的第一个字符是下面这五个字符之一时,JavaScript将不对第一行句尾添加分号:

"("、"["、"/"、"+" 、"-"

一楼正解,或者在第二个闭包前面加上!、-、;、+ 任何一个都可以

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题