Javascript自定义事件

触发用户自定义事件,已成为各前端框架的基本技术。(较新版本的浏览器才支持)

页面

<div id="outer">
    <div id="inner">Leonardo Da Vinci</div>
</div>
<button onclick="tiggerMyEvent();">触发事件</button>

脚本

document.querySelector("#outer").addEventListener(‘Leonardo Da Vinci‘,function(e){
    console.log(‘捕获事件‘,e.detail,e);
},false);

function tiggerMyEvent(){
    var evt = (void 0);
    try{ // Chrome浏览器、Firefox浏览器
        evt = new CustomEvent(‘Leonardo Da Vinci‘,{
            detail:{ // optional and defaulting to null, of type any, that is an event-dependent value associated with the event
                film:‘忍者神龟‘
            },
            bubbles:true, // (Optional) A Boolean indicating whether the event bubbles. The default is false.
            cancelable:true // (Optional) A Boolean indicating whether the event can be canceled. The default is false.
        });
    }catch(e){ // IE Edge浏览器
        evt = document.createEvent(‘Event‘); // Event type字符串只能是事件模块中定义的值。
        evt.initEvent(‘Leonardo Da Vinci‘,true,true); // the type of event,bubbles,cancelable
        evt.detail = {
            film:‘忍者神龟‘
        };
    }
    document.querySelector(‘#inner‘).dispatchEvent(evt);
}
时间: 2024-10-10 06:47:10

Javascript自定义事件的相关文章

JavaScript 自定义事件

Javascript事件模型系列(四)我所理解的javascript自定义事件 漫谈js自定义事件.DOM/伪DOM自定义事件

JavaScript自定义事件,动态添加属性

根据事件的不同,可用的自定义方法也不同. document.createEvent('Event'); 实现主要有4个步骤: 1.创建事件. 2.初始化事件(三个参数:事件名,是否起泡,是否取消默认触发) 3.监听事件 4.触发事件 var Evt = document.createEvent('Event');//创建一个事件 Evt.initEvent('inputChangeEvt', true, true);//初始化事件,给定事件名字 window.addEventListener('

Javascript 自定义事件 (custom event)

Javascript 中经常会用到自定义事件.如何创建一个简单的自定义事件呢?在创建自定义的事件之前,我们应该考虑一下和事件有关的东西.例如 click 事件,首先我们要能注册一个click事件(在一个button上绑定click事件),然后要能够触发这个事件,最后事件不需要的时候要能够移除事件. 我们可以借助JQuery 的方法来实现自定义事件,请看下面的例子: <div id="myDiv">myDiv</div> <script type="

高级功能:很有用的javascript自定义事件

之前写了篇文章<原生javascript实现类似jquery on方法的行为监听>比较浅显,能够简单的使用场景. 这里的自定义事件指的是区别javascript默认的与DOM交互的事件,比如click,mouseover,change等,有时候我们需要监听某一行为是否发生,很显然默认的行为不够用,比如一个场景.我们写好了tab切换,点击后请求加载隐藏标签的内容. tab切换是非常常用的一个功能,通常会写成组件,如果每次把请求写在组件里肯定对组件拓展和耦合性有影响.这时候我们可以在组件里自定义一

JavaScript自定义事件 - createEvent()、initEvent()和dispachEvent()

参考资料: MDN - Document.createEvent():https://developer.mozilla.org/zh-CN/docs/Web/API/Document/createEvent MDN - Event.initEvent():https://developer.mozilla.org/zh-CN/docs/Web/API/Event/initEvent MDN - 创建和触发events:https://developer.mozilla.org/zh-CN/do

JavaScript 自定义事件而不用 MVC 者,都是耍流氓

自定义事件这事儿,得用 MVC. 宝宝和我说,凡是写事件不用 MVC 者,都是耍流氓.我对此深以为然. 其实宝宝只说过后半句. 事件这玩意儿,从实现上来说,需要实现委托注册管理和事件触发回调这两块:从定义上来说,需要由事件服务定义委托管理和事件触发,由事件监听者定义委托注册和事件回调:从角色划分来说,需要分为服务者.触发者.监听者.这套排列组合,你已经乱了是吧.所以说,事件长得是这德性的: // 服务者 public delegate void EventHandler(object sende

JavaScript自定义事件监听

一.事件的属性和方法 1 //事件Event 2 //属性:` 3 `bubbles`:布尔值,是否会冒泡 4 `cancelable`:布尔值,是否可以取消默认动作 5 `target`:目标对象 6 `currentTarget`:当前对象 7 `timeStamp`:时间戳(相对于某个时刻) 8 `type`:事件类型,即注册该事件的名字 9 `eventPhase`:返回事件传播的当前阶段 10 11 12 //方法 13 1.event.stopPropagation(); 阻止冒泡

JavaScript自定义事件和触发(createEvent, dispatchEvent)

$(dom).addEvent("ft", function() { alert("走起"); }); // 创建 var evt = document.createEvent("HTMLEvents"); // 初始化 evt.initEvent("ft", false, false); // 触发, 即弹出文字 dom.dispatchEvent(evt); //type:HTMLEvents MouseEvents(也可

javascript事件之:谈谈自定义事件(转)

http://www.cnblogs.com/pfzeng/p/4162951.html 对于JavaScript自定义事件,印象最深刻的是用jQuery在做图片懒加载的时候.给需要懒加载的图片定义一个appear事件.当页面图片开始出现时候,触发这个自定义的appear事件(注意,这里只触发一次). 由此,现在我们通过JavaScript谈一谈自定义事件. 所谓事件,说的明白点,就是在一个合适的时候触发调用某个函数.平常说的事件是那些比较常用的,绑定在元素身上的某个方法,当用户触发某个行为时,