jQuery基本功能——事件

简介: jQuery基本功能——事件

事件

1、页面加载

DOM提供了load事件用于叶面积在完毕之后执行机制,jQuery提供了ready()方法实现相似功能。但DOM中的load事件与jQuery中的ready()方法具有以下三种区别:


DOM中的load事件:


没有任何简写形式

当HTML页面加载完毕之后出发load事件

一个HTML页面仅允许存在一个load事件

jQuery中的ready()方法:


具有简写形式

当DOM节点树加载完毕之后调用ready()方法

一个HTML页面允许存在多个ready()方法

jQuery中的ready()方法:示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>页面加载(jQuery)</title>
    <script src="../jquery-1.12.4.js"></script>
    <script>
/*
        jQuery提供了ready()方法——三种写法
            作用:实现了类似于window.onload事件的功能
*/
    // 写法一:
        /*$(document).ready(function () {
            console.log($('#btn'));
        });*/
    // 写法二
        /*$().ready(function () {
            console.log($('#btn'));
        });*/
    // 写法三----平常用法
        $(function () {
            console.log($('#btn'));
        });
    </script>
</head>
<body>
    <button id="btn">按钮</button>
</body>
</html>

2、事件绑定

(1)单事件绑定

jQuery提供了bind()方法完成事件绑定功能。

jQuery提供了unbind()方法完成事件解绑定功能。

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件的绑定与解绑</title>
    <script src="../jquery-1.12.4.js"></script>
</head>
<body>
    <button id="btn">按钮</button>
</body>
<script>
    /*
        bind(type,data,callback)方法 - 绑定事件
            *参数
                *type - 表示绑定的事件名称(注意:没有on)
                *data -作为event.data属性传递给事件对象的额外数据对象
                *callback - 表示绑定时间内的处理函数
    */
    function click1() {//为按钮绑定点击事件
        console.log('this is function')
    }
    function click2() {//为按钮绑定点击事件
        console.log('this is function too')
    }
    $('#btn').bind('click',click1);
    $('#btn').bind('click',click2);
    /*
        unbind(type,data,callback)方法 - 解绑定事件
            *参数
                *type - 表示绑定的事件名称(注意:没有on)
                *data -作为event.data属性传递给事件对象的额外数据对象
                *callback - 表示绑定时间内的处理函数
            *情况
                *如果传递事件名称的话 - 解绑定该事件的所有处理函数
                *如果传递事件名称和指定的处理函数 - 解绑该事件的指定处理函数
    */
    $('#btn').unbind('click',click1)
// -----------------------------------------------------------
/*
    bind()与undind()中的data参数---用法并不唯一
     * data参数的值->利用event事件对象的data属性进行接收
     * 特点:改参数的数据内容只能在时间的处理函数中被使用——低耦合
*/
    // var obj = {a:'张无忌'};
    $('#btn').bind('click',{a:'张无忌'},function (event) {
        console.log(event.data);
        // console.log(obj);
    });
</script>
</html>

(2)多事件绑定

多事件绑定同样适用bind()方法完成事件绑定功能。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>多事件的绑定与解绑</title>
    <script src="../jquery-1.12.4.js"></script>
    <style>
        #title{
            width: 80px;
            height: 20px;
            border: 1px solid black;
        }
        ul{
            list-style: none;
            padding: 0;
            display: none;
        }
        li{
            width: 80px;
            height: 20px;
            border: 1px solid black;
        }
    </style>
</head>
<body>
<div id="title">菜单</div>
    <ul>
        <li>北京</li>
        <li>天津</li>
        <li>南京</li>
    </ul>
</body>
<script>
    /*鼠标悬停事件
        * mouseover - 表示鼠标悬停在指定元素上
        * mouseout - 表示鼠标从指定元素上移开
    */
    /*写法一:
    $('#title').bind('mouseover',function () {
        $('ul').css('display','block');
    });
    $('#title').bind('mouseout',function () {
        $('ul').css('display', 'none');
    });
    */
    // 写法二---链式操作:
   /* $('#title').bind('mouseover',function () {
        $('ul').css('display','block');
    }).bind('mouseout',function () {
        $('ul').css('display', 'none');
    });*/
    //写法三:多事件绑定
    $('#title').bind('mouseover mouseout',function () {
       if ($('ul').is(':hidden')){
           $('ul').css('display','block');
        }else {
           $('ul').css('display', 'none');
       }
    });
</script>
</html>

上述示例代码效果图如下所示:

(3)事件绑定方法的对比

3、事件切换

jQuery提供了hover()方法模拟鼠标悬停事件效果。

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件切换</title>
    <script src="../jquery-1.12.4.js"></script>
    <style>
        #title{
            width: 80px;
            height: 20px;
            border: 1px solid black;
        }
        ul{
            list-style: none;
            padding: 0;
            display: none;
        }
        li{
            width: 80px;
            height: 20px;
            border: 1px solid black;
        }
    </style>
</head>
<body>
<div id="title">菜单</div>
<ul>
    <li>北京</li>
    <li>天津</li>
    <li>南京</li>
</ul>
</body>
<script>
   // jQuery提供了hover(over,out)方法
    $('#title').hover(function () {
        $('ul').css('display','block');
    },function () {
        $('ul').css('display', 'none');
    });
</script>
</html>

4、事件模拟

jQuery提供了trigger()方法用于模拟触发器匹配元素绑定的事件。

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件模拟</title>
    <script src="../jquery-1.12.4.js"></script>
</head>
<body>
    <button id="btn">按钮</button>
</body>
<script>
    // 绑定事件 - 由用户进行触发,调用处理函数
    $('#btn').bind('click',function () {
        console.log('this is button');
    });
    // 模拟用户触发事件
    $('#btn').trigger('click');
</script>
</html>
目录
相关文章
N..
|
25天前
|
JavaScript 前端开发
jQuery事件处理
jQuery事件处理
N..
11 1
|
30天前
|
JavaScript
jquery动画与事件案例
jquery动画与事件案例
12 0
|
30天前
|
JavaScript
jQuery实现判断li的个数从而实现其他功能
jQuery实现判断li的个数从而实现其他功能
12 0
|
1月前
|
JavaScript 前端开发 索引
JQuery样式操作、click事件以及索引值-选项卡应用示例
JQuery样式操作、click事件以及索引值-选项卡应用示例
20 1
|
1月前
|
JavaScript 前端开发
jQuery第一天---六大功能的简单应用
jQuery第一天---六大功能的简单应用
31 0
|
6月前
|
JavaScript 前端开发
前端基础 - JQuery事件切换(原来还有这种写法)
前端基础 - JQuery事件切换(原来还有这种写法)
29 0
|
6月前
|
JavaScript 前端开发 索引
Javascript知识【jQuery:数组遍历和事件】
Javascript知识【jQuery:数组遍历和事件】
|
28天前
|
JavaScript
jQuery最简单的留言功能^-^
jQuery最简单的留言功能^-^
9 1
|
29天前
|
JavaScript 前端开发
jQuery中的事件与动画
jQuery中的事件与动画
10 0
|
30天前
|
JavaScript
jQuery动画与事件概念以及语法
jQuery动画与事件概念以及语法
8 0