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. Python杨辉三角形

    RT Show me the Code def triangles(): b = [1] while(True): yield b b = [1] + [b[i] + b[i+1] for i in ...

  2. 个人总结-Alpha阶段

    一.个人总结 经过几周的Alpha阶段,对于软件设计有了大概的认识,也深刻感觉到一款软件设计出来的不易,每款软件背后都是开发人员辛勤的汗水.在软件开发的过程中,也是会出现很多的问题,出现各种各样的bu ...

  3. 201521123059 《Java程序设计》第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 1.Comparable与Arrays.sort,其功能是对指定对象数组按升序进 ...

  4. 201521123022 《Java程序设计》 第四周学习总结

    1. 本章学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2. 使用常规方法总结其他上课内容. ①instenceof运算符:可通过它判断父类引用对象实例的实际类型,且在父类转化成子类时 ...

  5. 201521123028 《Java程序设计》第3周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  6. 小Writeup

    Misc 100 下载文件之后是一个zip压缩包.因为一开始没有给任何提示信息,题目也什么都没说,爆破了一会无果.同时不是伪加密,所以应该是明文攻击.之后官方给出提示,是一个网址. F12进入调试,发 ...

  7. 201521123020《java程序设计》 第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1. ...

  8. man page里面函数后面的括号中的数字代表的含义。

    Linux下最通用的领域及其名称及说明如下:领域 名称 说明 1 用户命令, 可由任何人启动的. 2 系统调用, 即由内核提供的函数. 3 例程, 即库函数. 4 设备, 即/dev目录下的特殊文件. ...

  9. [5] 微信公众号开发 - 微信支付功能开发(网页JSAPI调用)

    1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按 ...

  10. mysql 1093错误

    1093错误:修改一个表的时候子查询不能是同一个表 解决办法:把子查询再套一层,变成原来表的孙子查询就可以了 例如: INSERT INTO gg SET id3=(SELECT c.a+1 FROM ...