event

JS监控DOM的事件(内部插入、移除、修改属性等)!爽!

家住魔仙堡 提交于 2020-04-18 02:35:59
这可不是简单的 onclick、onchange,你对 DOM 进行内部插入、移除、属性修改等均会触发相应事件。 DOM 事件列表: DOMAttrModified DOMAttributeNameChanged DOMCharacterDataModified DOMElementNameChanged DOMNodeInserted DOMNodeInsertedIntoDocument DOMNodeRemoved DOMNodeRemovedFromDocument DOMSubtreeModified 如何用? 像普通绑定事件一样绑定到 DOM 里就可以。 兼容性? 我只测了 Firefox 和 Chrome,其他的没有测,我的项目只需要兼容现代浏览器就可以了。 参考MDN: https://developer.mozilla.org/en-US/docs/Web/API/MutationEvent 参考W3C: http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-MutationEvent 来源: oschina 链接: https://my.oschina.net/u/988279/blog/491173

,Event

ε祈祈猫儿з 提交于 2020-04-07 20:37:57
var target = event.target || event.srcElement; console.log(target.tagName); //div 首先说EventEvent 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。事件通常与函数结合使用,函数不会在事件发生前被执行! 一般开发中使用Event事件状态时都会利用形参的方式,这样就会带来一个问题,这个兼容浏览器问题应该怎样被解决,利用以下代码作为处理 // 在IE8及以下的浏览器中,是将事件作为window对象的属性保存的 e = e || window.event; 检测现在使用什么事件类型 Event.type:可以检测现在使用什么事件类型click还是其他 点击事件触发了盒子div console.log(event.type);//click Event中的this Event.target:指向触发了的元素很像this 在IE里面使用Event.srcElement Event.targettagName:tagName 属性返回元素的标签名。HTML 返回 tagName 属性的值是大写的。 点击了带有百度链接的a标签,使用以下方法不会跳转 清除事件的默认行为 a.onclick = function(){return false;}

fullcalendar日历控件知识点集合

时光总嘲笑我的痴心妄想 提交于 2020-04-07 15:14:19
1、基本语法: 首先,fullcalendar和JQUERY一样,以面向对象的方式来组织代码。当然,这里的面向对象仅仅是指可以把整个fullcalendar理解为一个类,这个类里包括有很多的属性、方法、委托(函数回调)作为成员变量。通过为这些成员变量赋值,即可实例化出一个符合自己需求的fullcalendar实例出来,即最终在浏览器里渲染出的日历。换句话说,我们所做的绝大多数工作就是按照fullcalendar的语法约定去配置出一个符合我们需求的fullcalendar实例。除非对于极少的特殊需求,fullcalendar向我们提供的接口不足以满足,才会去修改fullcalendar本身的js文件。 作为一种JQUERY插件,可以把fullcalendar理解为向 jquery对象集里添加了一个日历相关的对象,这个对象里相关方法、属性、的调用方式,即为fullcalendar的基本语法。整个语法分为两种: 第一种和日历本身无关,仅仅是利用fullcalendar提供的方法来进行字符串和日期间的转换,形式如下: $.fullCalendar.formatDate(); 第二种则是与和配置fullcalendar实例相关的,这最终会影响到fullcalendar在浏览器里的渲染,形式如下$(‘#someId’) .fullCalendar(content); $(‘#someId’

js 事件对象相关笔记

感情迁移 提交于 2020-04-07 11:43:13
事件对象 event就是一个事件对象 写到我们的监听函数的括号里面 当形参来看 事件对象只有有了事件才存在,他是系统给我们自动创建的 不需要我们传递参数 事件对象是我们事件的一系列相关数据的集合 跟事件相关比如鼠标点击就包含了鼠标的相关信息等等 事件对象我们可以自己定义比如event,eve,e 事件对象也有兼容性问题 I E6,7,8通过window.event,兼容性的写法e = e || window.wvwnt 1 <div class="div">123</div> 2 <script> 3 var div = document.querySelector(".div") 4 div.onclick = function (event) { 5 console.log(event); 6 } 7 div.addEventListener('click', function (event) { 8 console.log(event); 9 }) 10 </script> 重点 常用的事件对象的属性和方法 e.target 返回触发事件的对象 标准 e.srcElement 返回触发事件的对象 非标准 e.type 返回事件的类型 比如click mouseover 不带on e.stopPropagation() 阻止冒泡 有兼容性问题 1 <div class="box

js-window对象的方法和属性资料

会有一股神秘感。 提交于 2020-04-07 11:39:36
Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不 管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,都会自动建立window对象的实例。另外,该对象的实例也可由 window.open()方法创建。由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对 象的引用。例如:window.document.write()可以简写成: document.write()。  在窗口中觖发本窗口对象的任何方法和属性时可以省去窗口的实例名称。例如给当前的myWin窗口设置status属性时,可以只用status而不用 myWin.status。但是,在事件处理中调用location属性、close()方法或open()方法时必须使用实例名称。 window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval moveBy moveTo resizeBy resizeTo scrollBy scrollTo find back forward home stop print blur focus captureEvent

【zepto学习笔记03】事件机制

馋奶兔 提交于 2020-04-07 05:51:17
前言 我们今天直接进入事件相关的学习,因为近期可能会改到里面的代码 就zepto来说,我认为最重要的就是选择器与事件相关了,随着浏览器升级,选择器简单了,而事件相关仍然是核心,今天我们就来学习学习 zepto事件处理部分篇幅不大,不到400行,前面篇幅也很小,所以真的很适合移动开发 变量定义 1 var $$ = $.zepto.qsa,2 handlers = {}, _zid = 1,3 specialEvents = {},4 hover = {5 mouseenter: 'mouseover',6 mouseleave: 'mouseout'7 } 事件部分首先定义了几个变量,$$为zepto选择器的方法,暂时不管他(据观察,好像也没有地方用到了,所以无意义) handlers为一个对象,与_zid息息相关,暂时不知道干什么的(据猜测两个应该是保存函数句柄,为removeEvent做准备) hover应该会同时触发两个事件才会触发,我们这里先不管,继续往下看 这里提供一个zid飞方法,该方法用于保证-zid的唯一性 1 function zid(element) {2 return element._zid || (element._zid = _zid++)3 } 算了,我们这里还是用一个实际点的方法跟进来吧,首先说一个关键的 $.Event(type,

javascript的offsetLeft、scrollLeft、offsetTop、scro...

笑着哭i 提交于 2020-04-06 22:29:54
avascript的offsetLeft、scrollLeft、offsetTop、scrollTop属性尤其在做幻灯片,位置判断,图片无缝滚动,返回顶部功能等等经常用到 下面总结了一些常用的和位置有关的知识点 1,scrollHeight: 获取对象的滚动高度,对象的实际高度 2,scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 3,scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 4,scrollWidth:获取对象的滚动宽度 5,offsetHeight:获取对象相对由父坐标 offsetParent 属性指定的父坐标的高度 6,offsetLeft:获取当前对象到其上级层左边的距离 7,offsetTop:获取当前对象到其上级层顶部的距离. 8,event.clientX 相对文档的水平座标 9,event.clientY 相对文档的垂直座标 10,event.offsetX 相对容器的水平坐标 11,event.offsetY 相对容器的垂直坐标 12,document.documentElement.scrollTop 垂直方向滚动的值 13,event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量 14,clientLeft

利用python写个桌面挂件 | 手把手带大家做只桌面宠物呗

核能气质少年 提交于 2020-04-06 16:39:06
导语 前段时间有小伙伴留言说想让我带大家写写桌面小挂件,今天就满足一下留过类似言的小伙伴的请求呗~不过感觉写桌面的挂历啥的没意思,就简单带大家做一只桌面宠物吧~ 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: PyQt5模块; 以及一些Python自带的模块。 原理简介 既然要写个桌面宠物,首先当然是要找宠物的图片素材啦。这里我们使用的是来自shimiji这款手机APP上的宠物图片素材,例如皮卡丘: 我下了大约60多种宠物的图片素材供大家选择: 在相关文件里都打包一起提供了,所以这里就不分享爬虫代码了(我挑选了一下,只要不是我觉得特别丑的,我基本都保留了),别给人家服务器带来不必要的压力。 接下来,我们就可以开始设计我们的桌面宠物啦。鉴于网上用python写的桌面挂件基本都是基于tkinter的,为了突出公众号的与众不同,这里我们采用PyQt5来实现我们的桌面宠物。 首先,我们来初始化一个桌面宠物的窗口组件: class DesktopPet(QWidget): def __init__(self, parent=None, **kwargs): super(DesktopPet, self).__init__(parent) self.show() 它的效果是这样子的: 接下来,我们设置一下窗口的属性让更适合作为一个宠物的窗口: # 初始化

深度探索JFR

会有一股神秘感。 提交于 2020-04-06 03:45:20
本文基于 OpenJDK 11 并涉及一些之后版本的特性,非 OpenJDK 11 的特性会被特殊标记出来 什么是 JFR? 我们都知道,黑匣子是用于记录飞机飞行和性能参数的仪器。在飞机出问题后,用于定位问题原因。JFR 就是 Java 的黑匣子。 JFR 是 Java Flight Record (Java飞行记录) 的缩写,是 JVM 内置的基于事件的JDK监控记录框架。这个起名就是参考了黑匣子对于飞机的作用,将Java进程比喻成飞机飞行。顾名思义,这个记录主要用于问题定位和持续监控。 如果是利用默认配置启动这个记录,性能非常高效,对于业务影响很小,因为这个框架本来就是用来长期在线上部署的框架。这个记录可以输出成二进制文件,用户可以指定最大记录时间,或者最大记录大小,供用户在需要的时候输出成文件进行事后分析。 JFR 的前身也是 JFR,只不过这个 J 不是 Java 而是 JRockit。在 JRockit 虚拟机时代,就有这样一个工具用来记录 Java 虚拟机运行时各项数据。在 Oracle 收购 Sun 公司之后,Hotspot 虚拟机时代,也一直延续了这个工具: JFR 0.9 版本对应 JDK 7 和JDK 8:JDK 7u40 之后,实现了和 JRockit Flight Recorder 一样的功能,并添加了各项数据配置,用来打开或者关闭一些统计数据功能。而且,在

深度探索JFR

对着背影说爱祢 提交于 2020-04-06 03:38:38
查看 JFR 事件的工具 - JMC (Java Mission Control) 官网地址: https://adoptopenjdk.net/jmc.html 国内下载起来比较慢,建议在aws上面建一个欧洲法兰克福的实例,在这个实例上先下载好,然后传输到本地。或者直接用我下面提供的连接下载,我也会跟着官网上面的版本进行更新的。 我的私人下载地址: https://zhxhash-blog.oss-cn-beijing.aliyuncs.com/resources/jmc.zip 如果更新的不够及时,欢迎大家留言提醒我要更新啦。谢谢 首先打开 jmc,我们通过 “文件” -> “打开文件” 来打开一个 jfr 文件。 由于 JFR 文件里面的数据要全部导入内存,而且 JMC 需要给这些数据做很多索引以及报表,最后的内存占用大概是原始文件的4~6倍左右。如果你的系统内存不足, JMC 也会提示你只截取一部分查看。最好你在 dump JFR 文件的时候,就利用 begin 还有 end 参数截取你感兴趣的时间段。 打开文件后, JMC 会自动对事件进行归类和分析,出一些报表出来。有些分析和建议非常有用,可以参考,报表也比事件更加直观。 但是就我个人使用倾向来看,我还是喜欢直接去看事件浏览器里面的具体事件。 我们先用一个简单的线上调优的例子,来初步了解下 JFR 的使用。 JVM