event

MUI事件管理

二次信任 提交于 2020-04-05 23:27:20
模块 : 事件管理 http://dev.dcloud.net.cn/mui/event/ 事件绑定 : 除了可以使用addEventListener()方法监听某个特定元素上的事件外, 也可以使用.on()方法实现批量元素的事件绑定。 .on(event,select,handler); //event: type:string,需要监听的事件名称,例如:"tap"; //select:type:string,选择器 //handler:type:function()事件触发时的回调函数,通过回调中的event参数可以获得事件详情 示例: mui(".mui-table-view").on('tap','.mui-table-view-cell',function(){ //获取id var id = this.getAttribute("id"); //传值给详情页面,通知加载新数据 mui.fire(detail,'getDetail',{id:id}); //打开新闻详情 mui.openWindow({ id:'detail', url:'detail.html' }); }) 事件取消 : 使用on()方法绑定事件后,若希望取消绑定,则可以使用off()方法。 off()方法根据传入参数的不同,有不同的实现逻辑。 .off(event,select,handler);

捕获未处理的Promise错误

丶灬走出姿态 提交于 2020-04-05 22:21:49
译者按: 通过监听 unhandledrejection 事件,可以捕获未处理的Promise错误。 原文: Tracking unhandled rejected Promises 译者: Fundebug 为了保证可读性,本文采用意译而非直译,并且对源代码进行了大量修改。另外,本文版权归原作者所有,翻译仅用于学习。 使用 Promise 编写异步代码时,使用 reject 来处理错误。有时,开发者通常会忽略这一点,导致一些错误没有得到处理。例如: function main() { asyncFunc() .then(···) .then(() => console.log('Done!')); } 这篇博客将分别介绍在浏览器与Node.js中,如何捕获那些未处理的Promise错误。由于没有使用 catch 方法捕获错误,当 asyncFunc() 函数 reject 时,抛出的错误则没有被处理。 浏览器中未处理的Promise错误 一些浏览器(例如Chrome)能够捕获未处理的Promise错误。 unhandledrejection 监听 unhandledrejection 事件,即可捕获到未处理的Promise错误: window.addEventListener('unhandledrejection', event => ···); promise :

线程同步

只愿长相守 提交于 2020-04-04 06:26:56
C# 用于线程同步的方法有lock statement,Interlocked class,Monitor class,wait handles(抽象基类,后续的Mutex,Semaphore,Event均为WaitHandle的实现子类),Mutex,Semaphore,Events,ReaderWriterLockSlim,其中lock statement, Interlocked class以及Monitor class可以用于同一进程的线程间同步,而Mutex,Semaphore,Events以及ReaderWriterLockSlim可以用于不同进程的线程间同步。 lock statement : 使用C#的关键字lock进行代码区域加锁: lock (obj) //锁定引用对象实例,不能是值对象,用于对象实例级别的代码同步 { //同步代码区域 或者 lock (typeof(class)) //锁定类对象,用于类级别的静态代码同步 //同步代码区域 Interlocked class : Interlocked class是一种相对于其他同步方法更快的但只能用于变量修改同步的方法。 Interlocked class提供了以下静态方法用于同步变量的修改操作: Increment,Decrement,Exchange,CompareExchange,Add,Read

jQuery 事件与事件对象

自闭症网瘾萝莉.ら 提交于 2020-04-03 23:06:11
一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解. 二.前言 本篇文章是至今为止本系列内容最多的一篇, 足以可见其重要性. 大家反映要多列举示例. 我会在时间允许的情况下尽量多列举示例. 真正的投入生产使用的实例暂时还无法加入到文章中, 但是可能最后我会列举一些作品供大家借鉴. 另外本人水平有限, 因为我不是UI设计师. 文章可能有错误的地方, 希望大家帮忙指出, 一起学习一起进步. 在技术的世界里我们是没有任何利益瓜葛. 希望大家都抱着彼此鼓励的心态, 对于回复中的激进评论我也都会考虑, 但是希望能够彼此尊重, 保护博客园这片程序员的净土! 三.事件与事件对象 曾经在我的 " Javascript公共脚本库系列(二): 添加事件多播委托的方法 " 和 " Javascript公共脚本库系列(三): 格式化事件对象/事件对象详解 " 两篇文章中, 曾讲解过javascript中的事件和事件对象. 首先看一下我们经常使用的添加事件的方式: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns

JS系列-事件循环机制event Loop

那年仲夏 提交于 2020-04-03 18:45:05
任务   可以分成两种,一种是 同步任务 (synchronous),另一种是 异步任务 (asynchronous)。 同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务; 异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。 运行机制如下: (1)所有同步任务都在主线程上执行,形成一个 执行栈 (execution context stack)。 (2)主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。 (3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。 (4)主线程不断重复上面的第三步。只要主线程空了,就会去读取"任务队列" 任务队列: "任务队列"是一个事件的队列,IO设备完成一项任务,就在"任务队列"中添加一个事件,表示相关的异步任务可以进入"执行栈"了。主线程读取"任务队列",就是读取里面有哪些事件; 除了IO设备的事件以外,还包括一些用户产生的事件(比如鼠标点击、页面滚动等等)。只要指定过回调函数,这些事件发生时就会进入"任务队列",等待主线程读取。 "回调函数

usr/include/dispatch - dispatch_source

孤人 提交于 2020-04-03 05:32:35
博文一部分摘自: Parse分析,以下简称博文1 (LeanCloud工程师针对Parse使用GCD的分析) 博文一部分摘自: GCD入门,以下简称博文2 建议先了解一下: BSD基础知识 在 Dispatch/source.h 中是这样描述Dispatch Source#### The dispatch framework provides a suite of Interfaces for monitoring low-level system objects (file descriptions , Mach Ports , signals , VFS nodes , etc.) for activity and automatically submitting event handler blocks to dispatch queues when such activity occurs. The suite of interfaces is known as the Dispatch Source API abstract: Dispatch Source are used to automatically submit event handler blocks to dispatch queues in response to external events.

Android开发——浅谈onInterceptTouchEvent、onTouchEvent与onTouch

﹥>﹥吖頭↗ 提交于 2020-04-03 04:24:51
一、onTouch onTouch是View中OnTouchListener接口中的方法,处理View及其子类被touch是的事件处理。当然,前提是touch时间能够传递到指定的view。 Q1:为什么会传递不到呢? 1:   /** 2: * Interface definition for a callback to be invoked when a touch event is 3: * dispatched to this view. The callback will be invoked before the touch 4: * event is given to the view. 5: */ 6: public interface OnTouchListener { 7: /** 8: * Called when a touch event is dispatched to a view. This allows listeners to 9: * get a chance to respond before the target view. 10: * 11: * @param v The view the touch event has been dispatched to. 12: * @param event The MotionEvent object

vue-event-calendar 日历

爷,独闯天下 提交于 2020-04-01 03:24:57
最近在写一个日历,能够删除或者添加某一个事件,于是百度发现一个可以自定义的组件 参考 https://segmentfault.com/a/1190000007898857   以下是自定义的模块,可以删除任意一个事件,也可以点击日期去添加当前日期的事件,这里犯了一个错误,就是在main.js引入这个组件后,在此组件模块下又引了一次,导致覆盖从而出错! <vue-event-calendar :events="demoEvents" @month-changed="monthChange" @day-changed="dayChange"> <template scope="props">//最新版本的element-ui支持的slot-scope <div class="event-item" v-for="(event,index) in props.showEvents" :key="event"> <div class="reuse-head"> <div class="reuse-title">{{index+1}}. {{event.title}}</div> <div class="reuse-date">{{event.date}}</div> <el-button @click="showDelete(event)" type="warning" icon="el

事件冒泡

只愿长相守 提交于 2020-03-31 08:02:40
1. 什么是事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序;如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。 2. 事件冒泡的作用 事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上),它还可以让你在对象层的不同级别捕获事件。 3. 阻止事件冒泡 事件冒泡机制有时候是不需要的,需要阻止掉,通过 event.stopPropagation() 来阻止 4. 阻止右键菜单 可以在网页上阻止按鼠标右键弹出的默认菜单,然后可以自定义菜单 $(document).contextmenu(function(event) { event.preventDefault(); }); 5. 合并阻止事件冒泡和右键菜单 实际开发中,一般把阻止冒泡和阻止默认行为合并起来写,如下 // event.stopPropagation(); // event.preventDefault(); // 合并写法: return false; 例子1,验证事件冒泡,搞个三层结构div,并分别定义样式

兼容问题

一笑奈何 提交于 2020-03-30 18:30:27
1. HTML对象获取问题 FireFox:document.getElementById("idName"); ie:document.idname或者document.getElementById("idName"). 解决办法: 统一使用document.getElementById("idName"); 2. const问题 说明:Firefox下,可以使用const关键字或var关键字来定义常量; IE下,只能使用var关键字来定义常量. 解决方法: 统一使用var关键字来定义常量. 3. event.x与event.y问题 说明:IE下,event对象有x,y属性,但是没有pageX,pageY属性; Firefox下,event对象有pageX,pageY属性,但是没有x,y属性. 解决方法: 使用mX(mX = event.x ? event.x : event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX. 4. window.location.href问题 说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href; Firefox1.5.x下,只能使用window.location. 解决方法: 使用window.location来代替window