`
smiky
  • 浏览: 257717 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

jquery event与node小记

 
阅读更多

老是忘,还是记下来算了

jQuery.cache为全局cache

每个jquery对象有一个缓存对象

在第一次调用$('').data(...)时会为此对象生成一个缓存id

elem[ internalKey ] = id = ++jQuery.uuid;internalKey为jquery加载时生成的唯一ID

jQuery.cache[id]可以得到对应元素的cache

cache的结构:

cache={

data:{},//$('').data('a','abc')这个a就放在data里面

events:{},//事件存放在这,如 click:[{handlerObj},{handlerObj}]

handle:function(){}//这个是事件触发时执行的函数,由它是调用dispatch并执行注册的事件函数

//element.addEventListener或attachEvent中放的是它

};

data: function( elem, name, data, pvt /* Internal Use Only */ )

在传了data时,将值设到cache.data中,在没传时基本就是取events与handle了

 

事件机制:

on: function( types, selector, data, fn, /*INTERNAL*/ one ) 用它来注册事件

$('#abc').on({

'click':function(){},

'mousedown':function(){}

},'.btn',[1,2,3])

一般情况下$('#abc').on('click',function(){})

 

注册事件

向cache.data[type]中添加handleObj,注册的函数会被加上一个属性guid用于删除事件

删除事件remove: function( elem, types, handler, selector ) {

遍历cache.data[type]中的handleObj,如果handeObj.handler.guid==handler.guid差不多就可以删了

 

trigger事件:trigger: function( event, data, elem, onlyHandlers ) 

$('#abc').on('my',function(){})

$('#abc').trigger('my')

根据类型构造一个event并找出对应的cache.handle,触发事件,进入dispatch分派具体的handleObj

 

从dispatch方法中可以看出:

给selector的好处是将事件注册在先辈上,可以减少事件源

原理很简单,就是event.target获取事件源,然后向上递归,看有没有先辈元素与selector相匹配

在给定data时必须用完整的注册形式,其实这个data没什么用,它是放在handleObj中,在事件触发时在event中带回来

trigger时给定的data(数组)会加上event之后一同作为参数给注册函数,即handler.apply(element,data)

 

分享到:
评论

相关推荐

    jquery.event.drag jquery拖动插件

    《jQuery Event Drag 插件深度解析与应用实践》 在Web开发中,用户交互体验的提升是关键之一,其中拖放(Drag and Drop)功能尤为常见,如文件管理、元素布局等。jQuery作为广泛使用的JavaScript库,提供了丰富的...

    JavaScript+jQuery Mobile+Node.js跨平台网页设计附书源码

    JavaScript,jQuery Mobile和Node.js是现代网页开发中的关键技术,它们各自扮演着不同的角色,而将它们结合起来可以创建出强大的、跨平台的网页应用。在这个项目中,我们看到这三个技术的融合,为开发者提供了从桌面...

    jQuery源码分析之Event事件分析

    对于事件的操作无非是addEvent,fireEvent,removeEvent这三个事 件方法。... Jquery提供了一个 event的包裹,这个相对于其它的lib提供的有点简单,但是足够使用。 代码如下: //对事件进行包裹。 fix : function(e

    jquery.event.drop-2.0.zip

    《jQuery Event Drop 2.0:深入理解与应用》 jQuery Event Drop 2.0 是一个专门用于处理拖放事件的插件,它为开发者提供了更丰富的交互功能,使得在网页上实现动态拖放操作变得更为简单。在这个压缩包文件"jquery....

    jquery.event.drag-2.0.rar

    除了这些基本事件,`jquery.event.drag-2.0`还提供了一些高级特性,如阻止默认的文本选择行为、处理拖放元素的碰撞检测以及与其它元素的交互。这些特性使得在网页上创建功能丰富的拖放解决方案变得更加容易。 在...

    node.js ,jquery_mobile.js

    此外,Node.js还可以与数据库如MongoDB、MySQL等进行交互,构建强大的后端服务。 jQuery Mobile则主要关注前端用户体验,尤其是移动设备上的交互设计。它提供了一套完整的UI组件和交互效果,如可滚动的列表视图、...

    jquery node.js 滚动分页插件

    在现代Web开发中,用户对页面...通过学习和理解这些代码,你可以更深入地了解如何将jQuery与Node.js结合,实现一个高效的滚动分页插件。在实际项目中,根据具体需求进行调整和优化,以适应不同的数据结构和用户界面。

    jQuery事件回调李斯特「jQuery Event Callback Lister」-crx插件

    新的jQuery Event Inspector面板。 舒适地检查您的jQuery代码,并查看其回调事件列表。 此插件在“元素”面板上添加了一个新的侧边栏-jQuery Callback Events侧边栏-显示了所选元素的事件处理程序,包括正在发生或...

    React+jQuery+Node示例源码。

    React、jQuery 和 Node.js 是三个在 Web 开发领域广泛应用的技术栈。这个压缩包中的源码提供了结合这三者的示例,旨在帮助开发者了解如何在实际项目中整合这些技术。 React 是一个由 Facebook 开发的 JavaScript 库...

    jquery中event对象属性与方法小结

    JQuery读书笔记–Event属性说明 JQuery事件中的Event属性是经常性的被忽略的。大多数时间你的确不怎么用它,但有些时候它还是它还是有作用的。如获知触发时用户的环境(是否按了shift etc)。每个浏览器对event都有...

    jQuery JavaScript与CSS开发入门经典

    《iQuery JavaScript与CSS开发入门经典》包含极富帮助的指南和紧贴实际的练习,使读者能在实际中轻松驾驭iQuery,并收到事半功倍的神奇效果。 内容简介 本书浓墨重彩地描述iQuery的API及iQuery框架的所有基础知识,...

    jquery.mobile.event

    除此之外,`vclick`事件是jQuery Mobile为模拟鼠标点击而设计的,它在触摸屏上与`click`事件相似,但通常响应更快。`vmouseover`和`vmouseout`则是触摸设备上的悬停事件,它们在元素上方触摸开始和结束时触发。 在...

    JQueryMobile与后台通信

    **jQuery Mobile 与后台通信详解** 在移动应用开发中,jQuery Mobile(JQM)是一个非常流行的前端框架,它专门设计用于构建响应式、触摸友好的移动Web应用。JQM简化了用户界面的设计,并提供了丰富的组件,如页面、...

    coffeescript programming with jquery rails and node.js

    CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good ...

    jQuery.event兼容各浏览器的event详细解析

    在jQuery中,`.event.fix()`方法是一个非常重要的工具,它能够将不同浏览器的原生事件对象转换成jQuery封装的统一的事件对象。当你使用jQuery处理事件时(例如使用`.click()`,`.mouseover()`等方法绑定的事件),...

    jquery-3.7.0.min.js(jQuery下载)

    jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...

    最新 jQuery 1.7正式发布(附带1.6中文API)

    另外,在jQuery 1.7中移除了event.layerX和event.layerY这两个属性,以及jQuery.isNaN()和jQuery.event.proxy()方法,分别用event.originalEvent.layerX and event.originalEvent.layerY、jQuery.isNumeric()、...

    HTML、CSS、JavaScript、Jquery、Node、Ajax、Vue学习笔记.zip

    包括HTML的基本结构和常用标签、CSS的样式设置与布局技巧、JavaScript的核心语法和动态交互功能、jQuery库的使用、Node.js的服务器端开发、Ajax的异步数据请求以及Vue.js框架的应用。每个部分都配有详细的笔记和示例...

Global site tag (gtag.js) - Google Analytics