jquery的事件处理

原生

//html
<button id="btn">按钮</button>

//js
document.getElementById(‘btn‘).onclick = clickCheckboxCallback;

function clickCheckboxCallback(event) {
    var e = event || window.event;
    var target = e.target || e.srcElement;
    if (target.nodeName === ‘BUTTON‘) {
        alert(‘yuansheng ok‘);
    }
    else {
        alert(‘yuansheng fail‘);
    }
}   

此处 event、e 为 MouseEvent,target为button#btn

-----------------------------------------------------------------

jquery

//html
<button id="btn">按钮</button>

//js
$(‘#btn‘).on(‘click‘, clickCheckboxCallback);

function clickCheckboxCallback(event) {
    var target = event.target;
    if ($.nodeName(target, ‘button‘)) {
        alert(‘jquery ok‘);
    }
    else {
        alert(‘jquery fail‘);
    }
}

此处 event为m.Event(jquery对象), target为button#btn

-------------------------------------------------------------

总结:jquery和原生js绑定事件的不同在于

    1. 绑定方式

       js为 dom.onclick = fn; jquery为$(‘#dom‘).on(‘click‘, fn);

    2. 兼容处理

      js 要经过 兼容处理,如下

var e = event || window.event;
var target = e.target || e.srcElement;

      jquery不用处理,只需要直接用event或者event.target,如下

var target = event.target;

      

      *jquery 和 原生js的event不一样,但target都是一样的

      3.对nodeName的判断,二者区别在上面的代码上可以看到

---------------------------------------------------------------------------

* Q:如何理解$符号?

A:直接写在$上的函数都只支持dom对象

时间: 2024-09-30 00:52:30

jquery的事件处理的相关文章

JQuery之事件处理

JQuery不支持捕获模型 冒泡模型解析 <body> <div> <input id="bntShow" type="button" value="点击" class="bnt"/> </div> <div class="classShow"> </div> </body> var i = ; $("body,d

JQuery绑定事件处理动态添加的元素

情况概要: 要用全选按钮来全部选中查询出的结果. 在页面加载时,并没有数据项.需要点击查询后才能出来数据项. 一. 首先,我试了注册Click事件,肯定黄了. 二. 准备用live.然后发现现在的版本已经不支持. 三. 下载jquery 1.8,在加载时使用live方法. 1 //加载时执行的函数 2 $(RegisterEvent); 3 4 function RegisterEvent() { 5 $("#ChkAllItems").live("click",

Jquery动态绑定事件处理函数 bind / on / delegate

1.bind方法绑定的事件处理函数不会应用到后来添加到DOM中的新元素.比如你在用bind给页面元素绑定事件之后,又新添加了一些与之前绑定过事件的元素一样的DOM元素,但是这些事件并不能在新的DOM元素上有体现. 如: $(document).ready(function(){ $("img").bind({ mouseenter:function(){ $(this).css("border","thick solid red"); }, mo

jquery事件之事件处理函数

一.事件处理 方法名 说明 语法 (events 事件类型,data数据,handler 事件处理函数,selector 选择器) Bind( 为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数.没用on关键字 jQueryObject.bind( events [, data ], handler ) One 为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数.只绑定一次 jQueryObject.one( events [, data ], handler 

使用AmplifyJS和JQuery编写更好更优雅的javascript事件处理代码

事件(或消息)是一种常用的软件设计模式,能够降低消息处理者和消息发布者的之间的耦合,比如J2EE里面的JMS规范.设计模式中的观察者模式(也叫发布/订阅模式),这对于javascript代码同样适用.之前写的JQuery相关博客中,详细介绍了JQuery的事件处理机制和特性,具体可以参考这个目录下的文章. JQuery事件处理其实就是使用了发布/订阅模式,包括它提供的命名空间机制.自定义事件都非常的棒,但是JQuery事件处理有一个缺陷:JQuery事件都是和DOM元素相关的,但是很多时候我们并

JQuery事件绑定函数one:绑定的事件处理函数只会被执行一次

JQuery绑定事件处理函数,有两种方式(方式1和方式2)是最常用的,方式3使用的较少. 方式1: $("#button").click(function(){ }); 这种方式很简单,也是平时编码最常用的做法.HTML中原始的事件,如onclick.onmouseover.onkeypress等,JQuery对名称进行了简单的封装,如onclick与JQuery的click对应,onmouseover与JQuery的mouseover对应.查看JQuery的API可以发现:JQuer

解决上一篇jquery中on的疑惑

内容都是来自:http://www.365mini.com/page/jquery-on.htm.这里做一下收藏.文章的最后  疑问和解答可以解决所有的疑惑  看了之后能更好的整篇文章. on()函数用于为指定元素的一个或多个事件绑定事件处理函数. 此外,你还可以额外传递给事件处理函数一些所需的数据. 从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind(). delegate(). live()等事件函数. on()支持直接在目标元素上绑定事

[jQuery学习系列四 ]4-Jquery学习四-事件操作

前言:今天看知乎偶然看到中国有哪些类似于TED的节目, 回答中的一些推荐我给记录下来了, 顺便也在这里贴一下: 一席 云集 听道 推酷 青年中国说 SELF格致论道 参考:http://www.365mini.com/page/tag/jquery-event-methods 1,readyready()函数用于在当前文档结构载入完毕后立即执行指定的函数.该函数的作用相当于window.onload事件. 2,blindbind()函数用于为每个匹配元素的一个或多个事件绑定事件处理函数.举例:

jQuery 快速入门教程

内容目录 jQuery 入门 什么是jQuery 如何使用jQuery jQuery的运行原理 如何选择jQuery版本 ready() 准备就绪时执行代码 jQuery 核心:选取元素 使用jQuery 选择器选取元素,并封装为jQuery对象 将现有的DOM元素封装为jQuery对象 将HTML字符串封装为jQuery对象 元素筛选 jQuery 核心:DOM操作的原则 切记混淆jQuery对象和Element对象的方法 Get and Set in One 原则 Get first Set