jQuery事件操作

文档加载

$(function () {});和window.onload = function () {}区别:

一、什么时候触发
1. jQuery的页面加载完成之后是浏览器的内核解析完页面的标签创建好DOM对象之后就会马上执行。
2. 原生js的页面加载完成之后,除了要等浏览器内核解析完标签创建好DOM对象,还要等标签显示时需要的内容加载完成。
二、触发的顺序
3. jQuery 页面加载完成之后先执行
4. 原生js的页面后执行
三、执行的次数
1. 原生js的页面加载完成之后,只会执行最后一次的赋值函数。
2. jQuery的页面加载完成之后是全部把注册的function 函数,依次顺序全部执行。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../../jQuery包/jquery.min.js"></script>
    <script type="text/javascript">
        window.onload = function () {
            alert("原生js的页面加载完成之后");
        }

        // jquery的页面加载完成之后
        $(function () {
            alert("jquery的页面加载完成之后");
        });
    </script>
</head>
<body>
<div>
    <span>span1</span>
    <span>span2</span>
    <span>span3</span>
    <span>span4</span>
</div>
<button>我是按钮</button>

<iframe src= "http://localhost:8080"></iframe>
<img src="http://localhost:8080/1.jpg" alt=""/>
</body>
</html>

事件绑定

  1. click(): 它可以绑定单击事件,以及触发单击事件
  2. mouseover():鼠标移入事件
  3. mouseout(): 鼠标移出事件
  4. bind(): 可以给元素一次性绑定一个或多个事件
  5. one(): 使用上跟bind 一样。但是one方法绑定的事件只会响应一次。
  6. unbind(): 跟bind方法相反的操作,解除事件的绑定
  7. live(): 也是用来绑定事件。它可以用来绑定选择器匹配的所有元素的事件。哪怕这个元素是后面动态创建出来的也有效
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="../../jQuery包/jquery.min.js"></script>
    <script type="text/javascript">
        //绑定单击事件
        $(function () {
           // $("h5").click(function (){
           //     alert("h5单击事件");
           // })

           //live绑定事件
           $("h5").live("click",function (){
               alert("h5单击事件");
           })

           $('<h5 class="head">什么是jQuery?</h5>').appendTo( $("#panel"));

           //  //触发事件
           //  $("button").click(function (){
           //      $("h5").click();//单击button触发h5的单击事件
           //  })
           //
           //  //绑定鼠标移入/移出事件
           //  $("h5").mouseover(function (){
           //      console.log("鼠标移入")
           //  })
           //
           //  $("h5").mouseout(function (){
           //      console.log("鼠标移出")
           //  })

            // //bind绑定事件
            // $("h5").bind("click mouseover mouseout",function (){
            //     console.log("bind绑定事件");
            // })

            // //one绑定事件
            // $("h5").one("click mouseover mouseout",function (){
            //     console.log("bind绑定事件");
            // })
            //
            // //unbind解除绑定事件
            // $("h5").unbind("click",function (){
            //     console.log("bind绑定事件");
            // })
        });


    </script>
</head>
<body>
<div id= "panel">
    <h5 class="head" >什么是jQuery?</h5>
    <div class="content">
        jQuery是继Prototype之后又一个优秀的JavaScript库,它是一个由John Resig 创建于2006年1月的开源项目。
    </div>
</div>
<button>触发</button>
</body>
</html>

事件对象

  1. javaScript事件对象
    事件对象,是封装有触发的事件信息的一个javascript对象。
    我们重点关心的是怎么拿到这个javascript 的事件对象。以及使用。
  2. 如何获取呢javascript 事件对象
    在给元素绑定事件的时候,在事件的function( event)参数列表中添加一一个参数,这个参数名,我们习惯取名为event。
    这个event就是javascript 传递参事件处理函数的事件对象。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        #div1{
            width: 200px;
            height: 100px;
            border: 1px solid red;
        }
        #div2{
            width: 200px;
            height: 200px;
            border: 1px solid red;
        }
    </style>
    <script type="text/javascript" src="../../jQuery包/jquery.min.js"></script>
    <script type="text/javascript">
        // window.onload = function () {
        //     //原生js获取事件对象
        //     document.getElementById("div1").οnclick=function (event){
        //         console.log(event)
        //     }
        // }

        $(function (){
            // //jQuery获取事件对象
            // $("#div2").click(function (event){
            //     console.log(event)
            // })

            $("#div1").bind("mouseover mouseout",function (event){
                if (event.type == "mouseover"){
                    console.log("鼠标移入")
                }else if (event.type == "mouseout"){
                    console.log("鼠标移出")
                }
            })
        })


    </script>
</head>
<body>
<div id="div1"></div>
<br/>
<div id="div2"></div>

</body>
</html>

事件冒泡

  1. 什么是事件的冒泡
    事件的冒泡是指,父子元素同时监听同一个事件。当触发子元素的事件的时候,同一个事件也被传递到了父元素的事件里去响应。
  2. 如何阻止事件冒泡
    在子元素事件函数体内,return false;可以阻止事件的冒泡传递。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        #content{
            width: 200px;
            height: 100px;
            border: 1px solid black;
        }
        span{
            display: block;
            border: 1px solid black;
        }
    </style>
    <script type="text/javascript" src="../../jQuery包/jquery.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $(" #content"). click(function () {
                alert('我是div' );
            });
            $("span").click(function () {
                alert('我是span' );

                return false;
            });
        })
    </script>
</head>
<body>
<div id="content" >
    外层div元素
    <span>内层span元素</span>
    外层div元素
</div>
<div id="msg"></div>
</body>
</html>
上一篇:H5网页设计基础,一位在校大学生的学习笔记以及体会心得(一)


下一篇:vue 使用 vconsole 移动端H5调试(引入使用)