no-jquery 04 Events
Events
Sending Native (DOM) Events
anchorElement.click();
Sending Custom Events
var event = document.createEvent('Event');
event.initEvent('my-custom-event', true, true); //can bubble, and is cancellable
someElement.dispatchEvent(event);
//modern; not IE
var event = new CustomEvent('my-custom-event', {bubbles: true, cancelable: true});
someElement.dispatchEvent(event);
Listening For Events
//above IE8
someElement.addEventListener('click', function() {
// TODO event handler logic
});
Removing Event Handlers
var myEventHandler = function(event) {
// handles the event...
}
someElement.removeEventListener('click', myEventHandler);
Modifying Events
someEl.addEventListener('some-event', function(event) {
event.stopPropagation();
});
//also prevent other handlers from executing.
someEl.addEventListener('some-event', function(event) {
event.stopImmediatePropagation();
});
someAnchor.addEventListener('click', function(event) {
event.preventDefault();
});
Event Delegation
document.getElementById('my-list').addEventListener('click', function(event) {
var clickedEl = event.target;
if(clickedEl.tagName === 'BUTTON') {
var listItem = clickedEl.parentNode;
listItem.parentNode.removeChild(listItem);
}
});
Keyboard Events
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.which === 72) {
// open help widget
}
});
//or
someElement.addEventListener('keypress', function(event) {
// ...
});
someElement.addEventListener('keyup', function(event) {
// ...
});
Mouse Events
someEl.addEventListener('mouseover', function() {
// mouse is hovering over this element
});
someEl.addEventListener('mouseout', function() {
// mouse was hovering over this element, but no longer is
});
Browser Load Events
window.addEventListener('load', function() {
// page is fully rendered
});
document.addEventListener('DOMContentLoaded', function() {
// markup is on the page
});
//<img>, <link>, and <script>.
img.addEventListener('load', function() {
// image has successfully loaded
});
//And if the image should fail to load?
img.addEventListener('error', function() {
// image has failed to load
});
Ancient Browser Support
Listening For Events
someElement.attachEvent('onclick', function() {
// TODO event handler logic
});
//complex
function registerHandler(target, type, callback) {
var listenerMethod = target.addEventListener || target.attachEvent,
eventName = target.addEventListener ? type : 'on' + type;
listenerMethod(eventName, callback);
}
// example use
registerHandler(someElement, 'click', function() {
// TODO event handler logic
});
function unregisterHandler(target, type, callback) {
var removeMethod = target.removeEventListener || target.detachEvent,
eventName = target.removeEventListener ? type : 'on' + type;
removeMethod(eventName, callback);
}
// example use
unregisterHandler(someElement, 'click', someEventHandlerFunction);
The Event Object
function myEventHandler(event) {
var target = event.target || event.srcElement
// handle event & target
}
function myEventHandler(event) {
if (event.stopPropgation) {
event.stopPropagation();
}
else {
event.cancelBubble = true;
}
}
no-jquery 04 Events的更多相关文章
- jquery tree events didn't work
You should put your js in $(document).ready() like following. Hope this will help you. $(document).r ...
- jquery 04
$('div').slice(1,3).css('background','red').end().css('color','blue'); 入栈原理图: <!DOCTYPE HTML> ...
- JavaScript 中的window.event代表的是事件的状态,jquery事件对象属性,jquery中如何使用event.target
http://wenda.haosou.com/q/1373868839069215 http://kylines.iteye.com/blog/1660236 http://www.cnblogs. ...
- jQuery Mobile入门
转:http://www.cnblogs.com/linjiqin/archive/2011/07/17/2108896.html 简介:jQuery Mobile框架可以轻松的帮助我们实现非常好看的 ...
- 从零开始学习jQuery (五) 事件与事件对象
本系列文章导航 从零开始学习jQuery (五) 事件与事件对象 一.摘要 事件是脚本编程的灵魂. 所以本章内容也是jQuery学习的重点. 本文将对jQuery中的事件处理以及事件对象进行详细的讲解 ...
- [DOM Event Learning] Section 3 jQuery事件处理基础 on(), off()和one()方法使用
[DOM Event Learning] Section 3 jQuery事件处理基础 on(),off()和one()方法使用 jQuery提供了简单的方法来向选择器(对应页面上的元素)绑定事件 ...
- jQuery入门(3)事件与事件对象
jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax()应 ...
- jQuery源代码学习之九—jQuery事件模块
jQuery事件系统并没有将事件坚挺函数直接绑定在DOM元素上,而是基于事件缓存模块来管理监听函数的. 二.jQuery事件模块的代码结构 //定义了一些正则 // // //jQuery事件对象 j ...
- jQuery原生框架-----------------事件
jQuery.extend({ // 绑定事件 addEvent: function( ele, type, fn ) { // ele不是DOM,type不是字符串,fn不是函数,打包打走 if( ...
随机推荐
- HDU 5875 Function -2016 ICPC 大连赛区网络赛
题目链接 网络赛的水实在太深,这场居然没出线zzz,差了一点点,看到这道题的的时候就剩半个小时了.上面是官方的题意题解,打完了才知道暴力就可以过,暴力我们当时是想出来了的,如果稍稍再优化一下估计就过了 ...
- [javascript]获取系统时间函数
var oDate=new Date(); //初始化系统时间函数 alert(oDate.getHours()); //获取时 alert(oDate.getMinutes()); //获取分 al ...
- 真机测试无缘无故finish了。程序也没有启动
去钥匙串里边把多余的证书删除, 然后reset xcode - preference - 选中你的appleID - iOS Development - reset
- 将rabbitmq整合到Spring中手动Ack
如果要手动ack,需要将Listener container 的 acknowledge 设置为manul,在消费消息的类中需实现ChannelAwareMessageListener接口. over ...
- eclipse使用时jar不在libraries
jar是在项目工程的目录下 点击工程右键 这样jar包边收到librarles中
- TIME_WAIT连接过多解决办法
问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放.看了一下18888,当时吓到了. 现象: 1.外部机器不能正常连接S ...
- python 中time模块使用
在开始之前,首先要说明这几点: 1.在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主 ...
- #Mac技巧#如何在Mac系统上新建TXT文档,以及打开txt文稿的乱码问题如何解决
使用mac的朋友可能都有这样的疑问,mac系统下强大的文本编辑器居然不能保存常用的TXT格式? 又或者打开同事在windows上保存的TXT文件会出现如下情况: 最近Hans也被这些问题困扰着,于是便 ...
- windows 下的tcping 小插件
如果把插件放在根目录 就要能过cmd切换到根目录 cd \ c:\>tcping -d -t -i 0.06 www.baidu.com 将文件放在c:\WINDOWS\system32目录下, ...
- C#回顾 - 2.NET的IO:Path、File、FileInfo、Directory、DirectoryInfo、DriveInfo、FileSystemWatcher
1.管理文件系统 一般而言,应用程序都会有保存数据.检索数据的需求. 1.1 使用 path 类来访问文件路径 [path常用的方法]:http://www.cnblogs.com/tangg ...