ps:本博客转自博主  天宇之游 ,地址:http://www.cnblogs.com/cwp-bg/  ,再次感谢天宇之游。
jquery事件使用方法总结

一、鼠标事件
1. click():鼠标单击事件

$div = $("div")
$div.click(data,function (event) { //点击盒子变蓝
    $(this).css({
        "background": "blue",
    });
    console.log(event);
})

参数function:匿名函数有且只有一个默认的参数event,event输出事件相关的信息;不允许有其他的参数,可以不写。
    参数data:有时候需要传递额外的数据给函数,data可以是一个数组,不需要可以省略。

扩展:

//event参数可以获取事件的各种属性,有几个常用

event.target:  获取触发事件的元素

$div.click(function (event) {
            $(event.target).css({
                    "background": "blue",
                });
    })
    
event.data: 获取事件传入的参数数据。
event.pageX: 获取鼠标光标点击距离文档左边left的距离;
event.pageY: 获取鼠标光标点击距离文档上边top的距离;

event.offsetX: 获取鼠标光标点击距离元素左边left的距离;
event.offssetY: 获取鼠标光标点击距离元素上边top的距离;

event.screenX: 获取鼠标光标点击距离屏幕left的距离;
event.screenY: 获取鼠标光标点击距离屏幕top的距离;

2. dblclick():鼠标双击事件

$div = $("div")
$div.dblclick()(function (event) { //双击盒子变蓝
    $(this).css({
        "background": "blue",
    });               
})

参数和click的用法完全一样,event同样可以获取众多的属性。

3. 鼠标进入和离开(进入子元素也触发)

mouseover():进入
    mouseout():离开

$div = $("div")
$div.mouseover(function (event) {
    $(this).css({
        "background": "blue",
    });               
})
$div.mouseout(function (event) {
    $(this).css({
        "background": "blue",
    });               
})

参数同上,绑定后鼠标进入元素的子元素会再次触发。

4. 鼠标进入和离开(进入子元素不触发)

mouseenter() 鼠标进入
    mouseleave() 鼠标离开

$div = $("div")
$div.mouseenter(function (event) {
    $(this).css({
        "background": "blue",
    });               
})
$div.mouseleave(function (event) {
    $(this).css({
        "background": "blue",
    });               
})

参数同上,绑定后鼠标进入和离开子元素不会再次触发。

5. hover():同时为mouseenter和mouseleave事件指定处理函数

$div = $("div")
// 鼠标进入和移出事件
    $div.hover(function (event) {
        $div.css({
            "background": "blue",
        })

},function (event) {
        $div.css({
            "background": "red",
        });
    })

hover可以同时加入两个function,第一个是鼠标进入触发,第二个是移出触发。
    前面不可以添加data参数,否则报错。

6. 鼠标按下和松开

mouseup() 松开鼠标
    mousedown() 按下鼠标

$div = $("div")
$div.mousedown(function (event) {
    $(this).css({
        "background": "blue",
    });
    console.log(event);
})

$div.mouseup(function (event) {
    $(this).css({
        "background": "blue",
    });
    console.log(event);
})

参数同click,和点击事件click不同的是,click在鼠标点击(包括按下和松开)后才触发事件,这里是按下或松开就会触发。

7. mousemove() 鼠标在元素内部移动

同法和参数同上。

二、键盘事件
*keypress():按下键盘(指的是按下)

$(window).keypress([20],function (event) {
        $div.css({
            "background": "blue",
        });
    console.log(event.which);            
    })

参数:同鼠标事件,第一个参数传递数据,function默认参数event值按下键盘事件。
    键盘事件需要绑定可获得焦点的元素,如:input,body,html,一般绑定窗口:window。
    如果需要具体判断按下了那个按键,使用event.which,返回键盘字母的ascii码。

注意:如果按下不放开,事件会连续触发。
*按下和松开

keydown() 按下键盘
    keyup() 松开键盘

$(window).keydown([20],function (event) {
    $div.css({
        "background": "blue",
    });
    console.log(event);
})

$(window).keyup([20],function (event) {
    $div.css({
        "background": "blue",
    });
    console.log(event);
})

参数同上。
    keydown和keypress方法区别在于,keypress事件不会触发所有的按键,比如 ALT、CTRL、SHIFT、ESC等。

三、焦点事件
* 元素获取和失去焦点

blur() 元素失去焦点
    focus() 元素获得焦点

$put = $("input");
$put.focus():元素自动获取焦点

$put.focus(function (event) {
    console.log(event);
        $div.css({
        "background": "blue",
            })
})//获取焦点后触发事件

$put.blur(function (event) {
    console.log(event);
        $div.css({
        "background": "blue",
            })
})//失去焦点后触发事件

参数同click;
    焦点事件一般使用在input标签上,其他的标签一般得不到焦点。

四、表单事件
* submit(): 用户递交表单

$(".form").submit(function (event) {
    alert("提交事件");
    console.log(event);
    //阻止系统默认事件
    event.defaultPrevented();
    return false;
})

submit事件绑定在form表单上,点击提交按钮时触发该事件,可以对系统默认的提交进行拦截。
    event.defaultPrevented();//阻止系统提交数据

五、其他事件
* ready():DOM加载完成后执行

这个事件用来防止js报错,每次引入js都要使用,不在赘述。

* resize():浏览器窗口的大小发生改变触发事件

$(window).resize(function () {
    console.log($(window).width());
   })

参数同click,这个事件需要绑定在window上才会生效,用于监控窗口的变化。

* scroll():滚动条的位置发生变化
* change(): 表单元素的值发生变化

$put.change(function () {
    $div.css({
        "background": "blue",
    });
                
})

当表单元素如单选框、多选框、文本框等值发生变化时触发。

* unload() :用户离开页面

$(document).unload(function () {
    $div.css({
        "background": "blue",
    });
    console.log("likai");
})

六、通用的绑定事件和解绑方法
* bind():绑定

$(function(){
    $('div').bind('mouseover click', function(event) {
        alert($(this).html());
    });
});

参数:第一个参数为需要绑定的事件的名字,可以绑定多个事件,之间用空格隔开;第二个参数是处理函数。

* unbind():解绑

$(function(){
    $('#div1').bind('mouseover click', function(event) {
        // $(this).unbind();解绑所有事件
        $(this).unbind('mouseover');解绑指定事件
    });
});

参数同bind。

* on():绑定和委托都可用的方法

$("div").on(event,childSelector,data,function);
//四个参数

$(function(){
    $('div').on('mouseover click', function(event) {
        $(this).css({
        "background": "blue",
        });
    });
});

参数:
    event,需要绑定的事件,多个事件用空格隔开;
    function:事件的处理方法。
    childSelector:选择需要委托的元素,用于委托事件。
    data:额外的传参。

* off():解绑

$(function(){
    $('#div1').on('mouseover click', function(event) {
        // $(this).off();解绑所有事件
        $(this).off('mouseover');解绑指定事件
    });
});

* one():绑定一次自动解绑

如果需要触发事件一次后就自动失效,比如:按钮点击一次后 就失效使用这个方法。

$(function(){
    $('div').one('mouseover click', function(event) {
        $(this).css({
        "background": "blue",
        });
    });
});

注意:当一次性绑定多个事件时,多个事件相互是独立的,即如果有一个事件被触发,那么这个事件解绑,对另外没有被触发的事件没有影响。

七、自定义和主动触发事件

说明:对于系统没有提供的事件,可以自己定义并主动触发。

$div.bind("abc",function () {
    $(this).css({
        "background": "blue",
    });
    
})
$div.trigger("abc");

trigger():触发事件的方法;这种方式类似协程。

八、事件的两大特征运用:
1. 事件的冒泡:

定义:一个元素标签如div,在上面触发某种事件,如单击;如果div上没有定义单击事件或者定义了单击事件,但返回值不是false,即没有阻止冒泡;那么事件会向父级传递,每一个定义了单击事件的父级都会被触发事件,直到到达document或window。

注意:冒泡是事件的固有属性(自定义不适用),适合所有的系统事件。

作用: 允许多个事件被击中到父级处理,减少绑定次数,提高性能。

$(function(){
    var $box1 = $('.father');
    var $box2 = $('.son');
    var $box3 = $('.grandson');
    $box1.click(function() {
        alert('father');
    });
    $box2.click(function() {
        alert('son');
    });
    $box3.click(function(event) {
        alert('grandson');
       // event.stopPropagation();阻止冒泡

});
    $(document).click(function(event) {
        alert('grandfather');
    });
})

......

<div class="father">
    <div class="son">
        <div class="grandson"></div>
    </div>
</div>

说明:上面代码界面,单击“grandson”的div,所有事件都会被触发;
    如果要阻止事件冒泡,使用stopPropagation();

扩展:合并阻止操作

event.stopPropagation();//阻止冒泡
event.preventDefault();//阻止默认行为

// 合并写法:
return false;

实际开发中,一般把阻止冒泡和阻止默认行为合并起来写。

2. 事件委托

定义:

利用冒泡原理,将要处理相同事件的子元素的事件委托给父级,从而极大减少事件绑定的次数,提高性能。

委托事件:

delegate():

$(function(){
    $list = $('list');
    $list.delegate('li', 'click', function(event) {
        $(this).css({background:'red'});
    });
})//给列表下面的每个li元素的事件委托给list列表。

参数:第一个参数是需要委托的元素,采用css选择器的写法,默认从一级子元素开始;第二个参数时要委托的事件,可以是多个,之间用空格隔开,第三个参数是处理函数。

event指触发事件的那个对象。

on():

$(function(){
    $list = $('list');
    $list.on('click', 'li', function(event) {
        $(this).css({background:'red'});
    });
})//给列表下面的每个li元素的事件委托给list列表。

参数:
        第一个是需要委托的事件,多个用空格隔开;
        第二个是需要委托事件的子元素;
        第三个是触发处理函数。

one():委托触发一次自动取消委托

$(function(){
    $('div').one('click',"li" function(event) {
        $(this).css({
        "background": "blue",
        });
    });
});

说明:参数用法和on事件一样。
    取消委托

undelegate():

$list.undelegate();//选择器找到委托对象取消委托

使用undelegate()方法取消委托,所有的子元素的委托都将被取消。

off():

$list.off("click","li");

总结:
    每一个事件相当于一个协程,异步操作;
    所有的事件并列处理,事件不要嵌套事件,否则会出现重复绑定。
    可以进行事件委托尽量使用委托,减少系统资源消耗。

ps:本博客转自博主    《天宇之游》  ,地址:http://www.cnblogs.com/cwp-bg/  ,再次感谢。

jquery各种事件使用方法总结(from:天宇之游)的更多相关文章

  1. jquery 绑定事件的方法

    jQuery中提供了四种绑定事件的方法,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off: 一.on()方法(首选方法) ...

  2. 【转】jquery 注册事件的方法

    原文链接:http://outofmemory.cn/code-snippet/2123/jquery-zhuce-event-method 1.使用事件名来绑定,可用的事件名有 change,cli ...

  3. 请写出jQuery绑定事件的方法,不少于两种

    bind on live one 简写事件:click.hover.mousemove.mouseup.mousedown……

  4. jQuery 自定义事件的学习笔记

    jquery中提供了两种方法可以绑定自定义事件: bind()和one()而绑定的自定义事件的触发,必须得用jquery中的trigger()方法才能触发. 我们先来看on事件  代码如下 复制代码 ...

  5. jquery事件使用方法总结

    jquery提供了许多的事件处理函数,学习前端一段时间了,下面对其总结一下,梳理一下知识点. 一.鼠标事件 1. click():鼠标单击事件 $div = $("div") $d ...

  6. jQuery中的事件绑定方法

    在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...

  7. jQuery的4种事件绑定方法

    jQuery中提供了四种绑定事件的方法,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off: 一.on()方法(首选方法) ...

  8. Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数、ColModel API、事件及方法

    系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...

  9. 原生JS事件绑定方法以及jQuery绑定事件方法bind、live、on、delegate的区别

    一.原生JS事件绑定方法: 1.通过HTML属性进行事件处理函数的绑定如: <a href="#" onclick="f()"> 2.通过JavaS ...

随机推荐

  1. 如何在C++中产生随机数

    C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand().不过,由于rand()的内部实现是用线性同余法做的,所以生成的并不是真正的随机数,而是在一定范围内可看为随 ...

  2. Java星星打印三角形小结

    1.直角三角形的打印

  3. 【Beta】 第二次Daily Scrum Meeting

    一.本次会议为第二次meeting会议 二.时间:13:30AM-13:55AM 地点:禹州 三.会议站立式照片 四.今日任务安排 成员 昨日任务 今日任务 林晓芳 对已完成的功能进行进一步测试,以便 ...

  4. 201521123055 《Java程序设计》第13周学习总结

    1. 本章学习总结 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 1.2 te ...

  5. Java第十三周总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  6. 201521123108《Java程序设计》第12周学习总结

    1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. Q ...

  7. thinkphp介绍及访问方式

    ThinkPHP框架 1.解压到www目录下,里面有一个index文件是入口文件,通过修改里面的APP_PATH进入不同的应用 2.ThinkPHP文件夹是核心文件夹,里面东西不要修改,可以查看,比如 ...

  8. ul中li居中显示的table方法

    废话不多,贴代码 <ul> <li>1</li> <li>2</li> <li>3</li> <li>4 ...

  9. js的原型

    在讲js的原型之前,必须先了解下Object和Function. Object和Function都作为JS的自带函数,Object继承自己,Funtion继承自己,Object和Function互相是 ...

  10. lincode.41 最大子数组

    最大子数组   描述 笔记 数据 评测 给定一个整数数组,找到一个具有最大和的子数组,返回其最大和. 注意事项 子数组最少包含一个数 您在真实的面试中是否遇到过这个题? Yes 哪家公司问你的这个题? ...