注册 登录
编程论坛 JavaScript论坛

关于两个事件函数嵌套,请问高手

qiuchuanlin 发布于 2014-07-07 07:55, 800 次点击
    <script>
        window.onload=function(){
            $("#d1").click(function(){
                var a=0;
                $("#btn1").click(function(){
                            alert(a++);
                        });
            });
        }
    </script>
</head>
<body>
    <div id="d1">
        <button id="btn1">按钮1</button><br>
        <button id="btn2">按钮2</button>
    </div>
</body>      

    ---上面是两个事件嵌套,当每次点击外面的div之后,再到里面点击button,alert的次数会累加.
    第一次点button,alert1次,第二次点击,alert2次,以此类推,每次都增加.
    我是做后台的,js菜鸟,请高手帮我解释下原理.为什么会这样.
    原本的设想是每次点击外面div,会是一个单独的事件,然后里面只alert一次.

5 回复
#2
寒风中的细雨2014-07-10 12:48
点击 外层div  会注册 btn1的点击事件

每点击一次div   btn1的点击响应事件 就会多注册一个


当点击btn1的时候 这些注册的响应事件  都会被触发
#3
qiuchuanlin2014-07-11 07:22
以下是引用寒风中的细雨在2014-7-10 12:48:51的发言:

点击 外层div  会注册 btn1的点击事件
 
每点击一次div   btn1的点击响应事件 就会多注册一个
 
 
当点击btn1的时候 这些注册的响应事件  都会被触发


哦,虽然还不是很明白,但有了这个概念,谢谢!!
再请问,保持两个click嵌套的情况下,有没有办法,实现每次点击就触发一次响应?


#4
寒风中的细雨2014-07-11 19:05
个人觉得 不注册就ok了
#5
qiuchuanlin2014-07-14 19:47
以下是引用寒风中的细雨在2014-7-11 19:05:08的发言:

个人觉得 不注册就ok了
谢谢~~~~~~~~~~~~~
#6
Dezen2014-07-21 16:02
回复 楼主 qiuchuanlin
点击 外层div  会注册 btn1的点击事件

每点击一次div   btn1的点


当点击btn1的时候 这些注册的响应事件  都会被触发
1