js:实现自定义事件对象接口】的更多相关文章

网易2017内推笔试题 要求: 请实现下面的自定义事件Event对象的接口,功能见注释(测试1) 该Event对象的接口需要能被其他对象拓展复用(测试2) //测试1 Event.on('test',function(result){ console.log(result); }); Event.on('test',function(){ console.log('test'); }); Event.emit('test','hello world'); //输出'hello world' 和…
js中的事件是js的一大技术点,说白了就是操作dom树的唯一途径. 关于事件无非两种绑定方式: document.getElementById('xxx').onclick = function(){ } document.getElementById("xxx").addEventListener("click", function(){ }); 前者和后者的区别无非就是绑定一个和多个,当多次绑定相同元素的时候,前者会覆盖,后者不会覆盖. 下面我们来看看如何自定义…
一.JS中的事件 (一)JS中的事件分类 1.鼠标事件 click/dblclick/onmouseover/onmouseout 2.HTML事件 onload/onscroll/onsubmit/onchange/onfocus 3.键盘事件 keydown:   键盘按下时触发 keypress:键盘按下并松开的瞬间触发 keyup:    键盘抬起时触发   [注意事项] ① 执行顺序:keydown->keypress->keyup ② 当长按时,会循环执行keydown->k…
1. 对于标准浏览器,其提供了可供元素触发的方法:element.dispatchEvent(). 不过,在使用该方法之前,我们还需要做其他两件事,及创建和初始化.因此,总结说来就是: 1 2 3 document.createEvent() event.initEvent() element.dispatchEvent() 举个例子: 1 2 3 4 5 6 7 8 9 10 11 12 var dom = document.querySelector('#id') document.addE…
项目中有时候会不用jquery这么好用的框架,需要自己封装一些事件对象和事件处理程序,像封装AJAX那样:这里面考虑最多的还是浏览器的兼容问题,原生js封装如下:var EventUtil={ //节点.事件名.事件处理函数 addHanler:function(element,type,handler){ if(element.addEventListener){ element.addEventListener(type,handler,false);//这里一个参数为false意为在事件冒…
- 事件,是文档或浏览器窗口中发生的一些特定的交互瞬间,JS与HTML之间的交互是通过事件实现的 对于web应用来说,有下面这些代表性事件:点击事件,鼠标移动,按下键盘等等 - 事件,是用户和浏览器之间的交互行为 我们可以在事件对应的属性中设置一些js代码,当事件被触发时,这些代码会执行 文档的加载: 浏览器在加载一个页面时,是按照自上而下的顺序加载的, 读取到一行就运行一行,在代码执行时,页面还没有加载 将js代码编写到页面的下面,确保页面加载完毕以后再执行js代码 window.onload…
原文地址:http://jingyan.baidu.com/article/d8072ac4594d6cec95cefdac.html 事件对象 的获取很简单,很久前我们就知道IE中事件对象是作为全局对象( window.event )存在的,Firefox中则是做为句柄( handler )的第一个参数传入内的.所以一行代码就可以搞定 代码如下: var evt = window.event || arguments[0]; 下面分三种添加事件的方式讨论,你也许会看到以前没有看到过的获取方式.…
我们知道在JS中常用的事件有: 页面事件:load: 焦点事件:focus,blur: 鼠标事件:click,mouseout,mouseover,mousemove等: 键盘事件:keydown,keyup,keypress: form表单事件:reset,submit: 内容变化事件:change,input 那JS中"事件对象",到底是个什么东西? 首先,什么是事件呢? 首先说JS就是为了实现一些动态的操作,而用户会有时候想去实现一些功能,如提交表单,鼠标点击等,就要在浏览器中触…
事件类型分类: 1 添加在html结构中的事件 <div id="div1" onclick="alert('append click event in html')"> </div> 点击div1之后弹出 append click event in html:其实在html结构中添加的事件也属于dom0级事件. 2 dom0级事件处理 <div id="div1"> </div> <scri…
$(function(){ $('#btn').bind("myClick", function(){ //自定义myClick事件 $('#test').append("<p>我的自定义事件.</p>"); }); $('#btn').click(function(){ $(this).trigger("myClick"); }).trigger("myClick"); })…
1.事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 什么时候会产生Event 对象呢? 例如: 当用户单击某个元素的时候,我们给这个元素注册的事件就会触发,该事件的本质就是一个函数,而该函数的形参接收一个event对象. 事件通常与函数结合使用,函数不会在事件发生前被执行! 使用场景即: var oDIv = document.getElementById('box'); oDiv.onclick = function(event…
JavaScript事件对象是浏览器默认传入的,但是对于浏览器的兼容问题,我们需要对事件对象进行兼容.但是jQuery已经帮我们解决了所有兼容性的问题,并且给我们添加了很多有用的方法.已经是比较历史的问题了,给大家提供参考.1.event.target 获取绑定事件的DOM元素2.event.type 获取事件的类型3.event.data 获取事件中传递的数据4.event.pagX/pagY 获取根据页面原点的X,Y值5.event.screenX/screenY 获取根据显示器窗口的X,Y…
HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序. 事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮). HTML DOM 事件 DOM: 指明使用的 DOM 属性级别. 鼠标事件 属性 描述 DOM onclick 当用户点击某个对象时调用的事件句柄. 2 oncontextmenu 在用户点击鼠标右键打开上下文菜单时触发   ondblclick 当用户双击某个对象时调用的事件句柄. 2 onmousedown 鼠标按钮被按下. 2…
1. 事件的创建 JS中,最简单的创建事件方法,是使用Event构造器: var myEvent = new Event('event_name'); 但是为了能够传递数据,就需要使用 CustomEvent 构造器: var myEvent = new CustomEvent('event_name', { detail:{ // 将需要传递的数据写在detail中,以便在EventListener中获取 // 数据将会在event.detail中得到 }, }); 2. 事件的监听 JS的E…
事件:JavaScript中的事件是由访问web页面用户的一系列操作引起的,比如点击鼠标,键盘按键等.当用户执行某些操作的时候再去执行一些代码. 事件模型:内联模型.脚本模型.DOM2模型 内联模型:事件处理函数是html元素的一个属性,即把事件处理函数代码写在html文件中 //在HTML中把事件处理函数作为属性来执行JS代码 <div id="d1" onclick="alert('事件函数')">测试DIV</div> //注意其中的单…
1.常用的事件 onmouseover  onmouseout  onmousedown  onmousemove  onmouseup   onclick  onchange  onfocus  onblur等等 2.每个元素身上的事件都是天生自带的,不需要我们去定义,只需要我们给这个事件绑定一个方法,当事件触发的时候就会执行这个方法 3.事件绑定的方法 (1)div.onclick=function(){}    DOM0级事件绑定 (2)div.addEventListener()或div…
事件源对象  event.srcElement.tagName  event.srcElement.type 捕获释放  event.srcElement.setCapture();   event.srcElement.releaseCapture(); 事件按键  event.keyCode  event.shiftKey  event.altKey  event.ctrlKey 事件返回值  event.returnValue 鼠标位置  event.x  event.y 窗体活动元素 …
var events = { addHandler: function (element, eventType, handler) { if (element.addEventListener) { return element.addEventListener(eventType, handler, false); } else { return element.attachEvent("on" + eventType, handler); } }, removeHandler: f…
var Event = { on: function (eventName, callback) { if (!this[eventName]) { this[eventName] = []; } this[eventName].push(callback); }, emit: function (eventName) { var that = this; var params = arguments.length > 1 ? Array.prototype.slice.call(argumen…
一.说明.引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾的碎碎念,可能没什么条理,可能有表述不准确的地方,可能内容比较拗口生僻.如果您时间紧迫,或者JS造诣已深,至此您就可以点击右侧广告(木有?则RSS或盗版)然后撤了. 事件是个大课题,真要从断奶开始讲起的话,可以写个12期的连载.关于JS事件的文章(类似DOM/BOM事件模型,IE与其他浏览器事件差异,DOM1/DOM2事件定义等)落叶般随处可见.熟豆子反复炒一点意思都没有,因此,这里谈谈自己感兴趣的自定义事件以及周边. 所谓自定义…
一.说明.引言 我JS还是比较薄弱的,本文的内容属于边学边想边折腾的碎碎念,可能没什么条理,可能有表述不准确的地方,可能内容比较拗口生僻.如果您时间紧迫,或者JS造诣已深,至此您就可以点击右侧广告(木有?则RSS或盗版)然后撤了. 事件是个大课题,真要从断奶开始讲起的话,可以写个12期的连载.关于JS事件的文章(类似DOM/BOM事件模型,IE与其他浏览器事件差异,DOM1/DOM2事件定义等)落叶般随处可见.熟豆子反复炒一点意思都没有,因此,这里谈谈自己感兴趣的自定义事件以及周边. 所谓自定义…
自定义事件的本质,创建一个对象,然后把事件的名字作为对象的一个属性,然后value是一个[],把此事件的所以回调都push进去. 写一个很基本的,没有把对象暴露出去的js的自定义事件. var event = (function(){ var obj = {}; var addEvent = function(type,cb){ if(!obj[type]){ obj[type] = []; } return obj[type].push(cb); } var removeEvent = fun…
事件对象 包含事件相关的信息,如鼠标.时间.触发的DOM对象等 js默认将事件对象封装好,并自动的以参数的形式,传递给事件处理函数的第1个参数,如下: document.getElementsByTagName("div")[0].onclick = function(e){ e = window.event || e; //兼容IE低版本(事件对象绑定在window的event上) console.log(e);//这里e就是事件对象 } 事件的属性和方法 type:获取事件类型(c…
原文出处:  http://www.w3cfuns.com/notes/11861/e21736a0b15bceca0dc7f76d77c2fb5a.html . 我拿出作者中的一段,感谢作者原创. DOM中的事件模拟(自定义事件): DOM3级还定义了自定义事件,自定义事件不是由DOM原生触发的,它的目的是让开发人员创建自己的事件.要创建的自定义事件可以由createEvent("CustomEvent"); 返回的对象有一个initCustomEvent()方法接收如下四个参数.…
安全的类型检测 在任何值上调用Object原生的toString()方法,都会返回一个[object NativeConstructorName]格式字符串.每个类在内部都有一个[[Class]]属性,这个属性中就指定了各个类型的构造函数名. 使用这种方法判断值属于什么类型最可靠:比如: function isArray(value){ return Object.prototype.toString.call(value)=="[object Array]"; } function…
1.jQuery鼠标事件之click与dbclick事件   方法一:$ele.click()(不带参数)   <div id="test">点击触发<div> $("ele").click(function(){     alert('触发指定事件') }) $("#test").click(function(){     $("ele").click() //手动指定触发事件 });   方法二:$…
转自:https://blog.csdn.net/leadergg/article/details/5927614?utm_source=blogxgwz5 ExtJs事件(自定义事件.on.eventManager)示例 鉴于最近更新主页比较慢,先把最近更新的extJs示例发到这里好了. 页面代码: <body> <link rel="stylesheet" type="text/css" href="../../../../resou…
Javascript自定义事件,其本质就是观察者模式(又称订阅/发布模式),它的好处就是将绑定事件和触发事件相互隔离开,并且可以动态的添加.删除事件. 下面通过实例,一步一步构建一个具体的Javascript自定义事件对象. 如:我有一个action1函数,我想每次在执行完action1后,触发另一个函数service1,那么代码我们可以这么写: //服务service1 function service1(){ } function action1(){ //other things //th…
javascript与HTML之间的交互是通过事件来实现的.事件,就是文档或浏览器窗口发生的一些特定的交互瞬间.通常大家都会认为事件是在用户与浏览器进行交互的时候触发的,其实通过javascript我们可以在任何时刻触发特定的事件,并且这些事件与浏览器创建的事件是相同的. 通过createEvent方法,我们可以创建新的Event对象,这个方法接受一个参数eventType,即想获取的Event对象的事件模板名,其值可以为HTMLEvents.MouseEvents.UIEvents以及Cust…
因为原生的event对象,在不同浏览器下,有不同的属性和方法,因此需要用jQuery进行兼容. jQuery在这里分两步走,首先创建一个伪事件类jQuery.Event(jQuery里面自定义的事件类),这个事件类会统一处理事件对象的兼容性问题,比如:stopPropagation,preventDefault方法.然后通过jQuery.event.fix方法,针对不同的事件类型修复特定的属性.比如:mousewheel,keydown等事件类型. jQuery.Event = function…