为什么测试二和三,有时候鼠标进入该区域,触发次数直接加4

来源:2-4 jQuery鼠标事件之mouseover与mouseout事件

吴尧

2016-08-09 08:59

<!DOCTYPE html>

<html>


<head>

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />

    <title></title>

    <style>

    .left div,

    .right div {

        width: 350px;

        height: 150px;

        padding: 5px;

        margin: 5px;

        border: 1px solid #ccc;

    }

    p{

        height: 50px;

        border: 1px solid red;

        margin: 30px;

    }

    .left div {

        background: #bbffaa;

    }

    .right div {

        background: yellow;

    }

    </style>

    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>

</head>


<body>

    <h2>mouseover与mouseout事件</h2>


    <h4>测试一</h4>

    <button>点击:指定触发mouseover事件</button>

    <script type="text/javascript">

        $('h2').mouseover(function(e) {

            alert('触发h2元素绑定的mouseover')

        })

        $("button:eq(0)").click(function(e) {

            $('h2').mouseover() //指定触发绑定的事件

        })

    </script>

    

    

    <h4>测试二</h4>

    <div class="left">

        <div class="aaron1">

            <p>鼠标移进此区域触发mouseover事件</p>

            <a>进入元素内部,mouseover事件触发次数:</a>

        </div>

    </div>

    <script type="text/javascript">

        var n = 0;

        //绑定一个mouseover事件

        $(".aaron1 p:first").mouseover(function(e) {

            $(".aaron1 a").html('进入元素内部,mouseover事件触发次数:' + (++n))

        })

    </script>

    

    

    <h4>测试三</h4>

    <div class="right">

        <div class="aaron2">

            <p>鼠标移动:不同函数传递数据</p>

            <a>进入元素内部,mouseover事件触发次数:</a>

        </div>

    </div>

    <br/>

    <script type="text/javascript">

        var n = 0;

        //不同函数传递数据

        function data(e) {

            $(".right a").html('mouseover事件触发次数:' + (++n) + '<br/> 传入数据为 :'+ e.data)

        }


        function a() {

            $(".right p:first").mouseover('data = 慕课网', data)

        }

        a();


    </script>

</body>


</html>



写回答 关注

3回答

  • 不特别的慕课者
    2016-08-09 09:28:36
    已采纳

    不可能  测试二  每次鼠标移到那个区域才加1。。。怎么可能加4?  测试三和二是一样的,只是多传了个参数,所以一次也是加1。。。。  是不是你卡住了 出现问题,你可以复制到其他软件上运行下。。。

    吴尧

    非常感谢!

    2016-08-09 11:15:14

    共 1 条回复 >

  • Fstar
    2016-08-10 10:32:05

    如果想要测试三从1开始计数,那就把71行之后的n全改名字,比如改成m。

    这样测试二和测试三就不会冲突了

  • Fstar
    2016-08-10 10:26:23

    .......只是因为n是全局变量。

    测试二和测试三都是用同样的计算次数的变量n。你在测试二划过3次后,n变成了3,再划过测试三,++n后,当然表示的是4

jQuery基础(三)—事件篇

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

89997 学习 · 625 问题

查看课程

相似问题