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/  ,再次感谢。

转载于:https://www.cnblogs.com/GP1014336455/p/7679543.html

jquery各种事件使用方法总结(from:天宇之游)相关推荐

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

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

  2. jQuery绑定事件的方法四种方法

    jq给元素绑定事件的方法有4种, 1.bind()  2.live()  3.live()  4.on()  //on常用 一:bind(type,[data],function(eventObjec ...

  3. jquery 停止事件冒泡方法

    2种方法: View Code <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...

  4. jquery动态绑定事件的方法_Jquery绑定事件及动画效果

    绑定事件 bind(type, data, fuc) one(type, data, fuc) //只执行一次 常见事件类型 名称含义blur失去焦点focus获得焦点load加载resize重置大小 ...

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

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

  6. jquery事件使用方法总结

    jquery提供了许多的事件处理函数,下面对其总结一下,梳理一下知识点,便于记忆和使用. 一.鼠标事件 1. click():鼠标单击事件 $div = $("div") $div ...

  7. jQuery文本框(input textare)事件绑定方法教程

    jquery 的事件绑定已经用on替换了原来的bind,接下来为大家分享下bind的使用方法及input textare事件.目前1.7以上,jquery?的事件绑定已经用on替换了原来的bind,接 ...

  8. js进阶课程 12-9 jquery的事件对象event的方法有哪些?

    js进阶课程 12-9 jquery的事件对象event的方法有哪些? 一.总结 一句话总结:三组六个,阻止默认事件一组,阻止冒泡一组,阻止冒泡和剩余事件一组. 1.事件的默认动作指什么? 比如点a标 ...

  9. jQuery 事件绑定方法(bind hover toggle live.... )、删除事件方法(unbind, die)及 事件对象

    事件绑定方法: 1.<type>(function) $("button").click(function(){... }); 2.bind(map) $(" ...

  10. 读jQuery之十二(删除事件核心方法)

    使用jQuery删除事件(或称解除事件绑定)有三个函数:unbind.die和undelegate.这三个方法都依赖于未公开的jQuery.event.remove(后续使用remove简写).此为删 ...

最新文章

  1. Active Directory还原工具之三Software Active Directory Recycle Bin PowerPack
  2. 一站式开源测试平台:MeterSphere
  3. C#窗体应用中使用ZedGraph曲线插件绘制图表
  4. 好强大的仿生机械,这才是真正的黑科技!
  5. ubuntu 15.04安装VMware11
  6. 基于内容的视频标注——物体层视频标注
  7. mysql 打开慢查询日志
  8. 【机器学习】无监督学习:PCA和聚类
  9. Codeforces 18C C. Stripe
  10. ubb转换html,UBB代码转换成HTML代码
  11. python深度学习——手写字符识别
  12. adb重启或关机手机命令
  13. 宝塔linux 屏蔽ip,宝塔屏蔽国外IP保护网站安全
  14. App云测试服务对比
  15. GitHub上14个屌炸天的Java进阶教程、面试真题项目,建议收藏!
  16. 江苏省南京市2021年电子信息申报通知(中、高级)
  17. IntelliJ IDEA的常用设置和快捷键
  18. 大学物理·第4章刚体的转动
  19. 如何在mmdetection3d下批量的预测单目3d检测结果并保存
  20. 【Vue】 组件封装

热门文章

  1. bootstrap 黑边框表格样式_bootstrap3.0教程之多种表格效果(条纹状表格、条纹状表格、鼠标悬停等)...
  2. threadlocal原理_Java并发编程——揭开ThreadLocal的面纱
  3. 人月神话阅读笔记(2)
  4. 接口自动化测试框架实例教程
  5. vue实现密码的表单验证~(旧密码,新密码,重复新密码)
  6. 简单几何(四边形形状) UVA 11800 Determine the Shape
  7. 树的非递归前中后序遍历
  8. Android Q Labs| Android Q 分区存储
  9. Golang 之协程详解
  10. 如何用Uber JVM Profiler等可视化工具监控Spark应用程序?