为了账号安全,请及时绑定邮箱和手机立即绑定

关于n的次数问题 ???? var n = 0; //绑定事件 $(".aaron:last").on('mousedown mouseup', function(e) { $(this).text( '触发类型:' + (e.type) + ",次数" + ++n) ++n; })

为什么点击后松开 n是3而不是2???

当我写这样的时候,显示的n的结果是2

$(this).text( '触发类型:' +  (e.type) + ",次数" + ++n)


老师的源码写这样的时候,显示的n的结果是3。结尾多了++n 是想说明什么?

 $(this).text( '触发类型:' +  (e.type) + ",次数" + ++n) ++n;


<h4>测试一</h4>

    <div class="left"> 

        on('mousedown mouseup')

        <div class="aaron">点击触发</div>

    </div>

    <button>点击销毁所有事件off</button>

    <script type="text/javascript">

    var n  = 0;

    //绑定事件

    $(".aaron:last").on('mousedown mouseup', function(e) {

        $(this).text( '触发类型:' +  (e.type) + ",次数" + ++n)

        ++n;

    })


    //删除事件

    $("button:last").click(function() {

        $(".aaron:last").off()

    })

   

    </script>


正在回答

3 回答

你的顺序有些问题,先是n==1,显示,然后n==2,这都是mousedown事件的执行过程。

$(this).text( '触发类型:' +  (e.type) + ",次数" + ++n)

        ++n;

仔细看你的源码,你再++n一次之后就输出了,所以在显示了1之后mousedown事件还没有结束,会接着执行++n;之后才会结束,这时候n==2。之后你松开了鼠标触发了mouseup事件。这时也是先执行$(this).text( '触发类型:' +  (e.type) + ",次数" + ++n)这句。所以显示的是(在n==2之后)++n的值也就是3。之后执行++n;n==4结束mouseup事件。


1 回复 有任何疑惑可以回复我~
#1

淡水狗 提问者

非常感谢!
2017-07-17 回复 有任何疑惑可以回复我~
#2

沫荼 回复 淡水狗 提问者

你看明白了就好
2017-07-17 回复 有任何疑惑可以回复我~

先是n==0,不是1

0 回复 有任何疑惑可以回复我~

当你按下鼠标时触发mousedown,++n,n==1,显示1,之后++n,n==2,松开鼠标时触发mouseup,++n,n==3,显示3,之后++n,n==4.

1 回复 有任何疑惑可以回复我~
#1

淡水狗 提问者

当按下鼠标时触发mousedown,++n,n==1,显示1这个能理解,那 $(this).text( '触发类型:' + (e.type) + ",次数" + ++n)++n; n==2是因为括号内的n==1了再加上括号外面的++n 等于2是吗? 如果是这样的话那松开时 n==3加上外面的++n 不就等于4吗? 怎么一开始还是显示3?
2017-07-17 回复 有任何疑惑可以回复我~
#2

沫荼 回复 淡水狗 提问者

字数限制我写下面了
2017-07-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于n的次数问题 ???? var n = 0; //绑定事件 $(".aaron:last").on('mousedown mouseup', function(e) { $(this).text( '触发类型:' + (e.type) + ",次数" + ++n) ++n; })

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信