- 浏览: 97776 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
kakamimika:
貌似不行吧
jquery读取xml文件示例 -
momofiona:
第二版本:http://dl.dropbox.com/u/ ...
popBaseball拖动插件分析
[size=large][/size]定位
//for ie
oDiv.onclick=function(){
var oEvent=window.event;
}
//for Dom
oDiv.onclick=function(){
var oEvent=arguments[0];
}
//可直接命名参数,访问就更方便
oDiv.onclick=function(oEvent){
//for some code;
}
ie事件的一些属性及方法
altKey true代表按下alt键,false代表没有;
button 0 未按下按纽
1 按下左键;
2........
3.按下左右键;
4.按下中间的
5.按下左中的
6.按下右中的
7.按下左中右的
cancelBubble true时,将会停止事件向上冒泡.
clienX 事件发生时,鼠标在客户端区域的X坐标(不包括工具栏,滚动条)
offsetX 鼠标相对于引起事件的对象的X坐标;
dom的一些属性和方法
currentTarget 事件目前所指向的元素;
detail 鼠标点击的次数;
eventPhase 0 捕获阶段 1 在目标上 2 冒泡阶段;
preventDefault() 阻止事件的默认行为;
relatedTarget 事件的第二目标,经常用于鼠标事件;
stopPropagation()可调用这个方法阻止将来事件的冒泡;
//IE跟DOM相似性
var sType=oEvent.type;
//for example
function handleEvent(oEvent){
if(oEvent.type=="click")
{
alert("Cliked");
}else(oEvent.type=="mouseover"){
alert("Mouse Over");
}
}
oEvent.onclick=handleEvent;
oEvent.onmouseover=handleEvent;
2.获取按键代码
var iKeyCold=oEvent.keyCode;
回车 KeyCode 13;
空格键 KeyCode 32;
回退 KeyCode 8;
3.检测shift,alt,ctrl
var bshift=oEvent.shiftKey;
var bAlt=oEvent.altKey;
var bCtrl=oEvent.ctrlKey;
4.客户端坐标
var iClientX=oEvent.clientX;
var iClientY=oEvent.clientY;
5.屏幕坐标
var iScreenX=oEvent.screenX;
var iScreenY=oEvent.screenY;
ie跟dom浏览器的一些区别
注意的是:MAC上的IE同时支持srcElement和target;
2.获到字符代码
//for ie
//for Dom
3.阻止事件的默认行为
//for ie
oEvent.returnValue=false;
//for Dom
oEvent.preventDefault();
//for example
4.停止事件复制
事件的类型
鼠标事件
键盘事件
HTML事件
突变事件
对于mouseover和mouseout事件
mouseover下
ie的toElement==srcElement;
mouseout
ie的fromElement==srcElement;
Dom下
mouseover
relatedTarget指出鼠标来自何处;
mouseout
relatedTarget指出鼠标去往何处;
click事件发生前,先要mousedown---------->>mouseup-------->>click
dbclick则要mousedown------>>mouseup------->>click--->>mousedown-->>mouseup------>>click----->>dbclick
mouseout(离开一个)---->>两个对象都会发生mousemove-------->>mouseover(进入另外一个)
======================================================
用户按下一个字符键不放,keydown和keypress事件会一直触发
keydown---keypress--keyup
用户按下一个非字符,eg:shift
则只有keydown事件持续触发;
keydown-----------keyup
======================================================
HTML事件
abort事件
用户停止下载过程时,如果object对象还未完全载入,则就在其上触发;
select事件
input,textarea选择了一个或者多个字符时触发;
change事件
input,textarea,先失去焦点并且在它获取焦点后内容发生了变化时触发;select元素的值发生改变时触发;
focus事件
得到焦点时触发
blur事件
失去焦点时触发
resize事件
resize事件的处理函数必须使用js代码分配给window对象或者在html中分配给body元素
//for ie
只要窗口移动就会触发
//for ff
只有等窗口的大小改变停止时,才会触发
最大化时,或者最小化时.resize事件会一直触发;
最后附上一个兼容事件类库.
eventUtil.js
//for ie
oDiv.onclick=function(){
var oEvent=window.event;
}
//for Dom
oDiv.onclick=function(){
var oEvent=arguments[0];
}
//可直接命名参数,访问就更方便
oDiv.onclick=function(oEvent){
//for some code;
}
ie事件的一些属性及方法
altKey true代表按下alt键,false代表没有;
button 0 未按下按纽
1 按下左键;
2........
3.按下左右键;
4.按下中间的
5.按下左中的
6.按下右中的
7.按下左中右的
cancelBubble true时,将会停止事件向上冒泡.
clienX 事件发生时,鼠标在客户端区域的X坐标(不包括工具栏,滚动条)
offsetX 鼠标相对于引起事件的对象的X坐标;
dom的一些属性和方法
currentTarget 事件目前所指向的元素;
detail 鼠标点击的次数;
eventPhase 0 捕获阶段 1 在目标上 2 冒泡阶段;
preventDefault() 阻止事件的默认行为;
relatedTarget 事件的第二目标,经常用于鼠标事件;
stopPropagation()可调用这个方法阻止将来事件的冒泡;
//IE跟DOM相似性
var sType=oEvent.type;
//for example
function handleEvent(oEvent){
if(oEvent.type=="click")
{
alert("Cliked");
}else(oEvent.type=="mouseover"){
alert("Mouse Over");
}
}
oEvent.onclick=handleEvent;
oEvent.onmouseover=handleEvent;
2.获取按键代码
var iKeyCold=oEvent.keyCode;
回车 KeyCode 13;
空格键 KeyCode 32;
回退 KeyCode 8;
3.检测shift,alt,ctrl
var bshift=oEvent.shiftKey;
var bAlt=oEvent.altKey;
var bCtrl=oEvent.ctrlKey;
4.客户端坐标
var iClientX=oEvent.clientX;
var iClientY=oEvent.clientY;
5.屏幕坐标
var iScreenX=oEvent.screenX;
var iScreenY=oEvent.screenY;
ie跟dom浏览器的一些区别
//for ie var oTarget=oEvent.srcElement;
//for DOM var oTarget=oEvent.target;
注意的是:MAC上的IE同时支持srcElement和target;
2.获到字符代码
//for ie
var iCharCode=oEvent.keyCode;
//for Dom
var iCharCode=oEvent.charCode;
3.阻止事件的默认行为
//for ie
oEvent.returnValue=false;
//for Dom
oEvent.preventDefault();
//for example
document.body.oncontextmenu=function(oEvent){ if(isIe){ oEvent=window.event; oEvent.returnValue=false; }else{ oEvent.preventDefault(); } }
4.停止事件复制
//for ie oEvent.cancelBubble=true; //for Dom oEvent.stopPropagation();
事件的类型
鼠标事件
键盘事件
HTML事件
突变事件
对于mouseover和mouseout事件
mouseover下
ie的toElement==srcElement;
mouseout
ie的fromElement==srcElement;
Dom下
mouseover
relatedTarget指出鼠标来自何处;
mouseout
relatedTarget指出鼠标去往何处;
click事件发生前,先要mousedown---------->>mouseup-------->>click
dbclick则要mousedown------>>mouseup------->>click--->>mousedown-->>mouseup------>>click----->>dbclick
mouseout(离开一个)---->>两个对象都会发生mousemove-------->>mouseover(进入另外一个)
======================================================
用户按下一个字符键不放,keydown和keypress事件会一直触发
keydown---keypress--keyup
用户按下一个非字符,eg:shift
则只有keydown事件持续触发;
keydown-----------keyup
======================================================
HTML事件
abort事件
用户停止下载过程时,如果object对象还未完全载入,则就在其上触发;
select事件
input,textarea选择了一个或者多个字符时触发;
change事件
input,textarea,先失去焦点并且在它获取焦点后内容发生了变化时触发;select元素的值发生改变时触发;
focus事件
得到焦点时触发
blur事件
失去焦点时触发
resize事件
resize事件的处理函数必须使用js代码分配给window对象或者在html中分配给body元素
//for ie
只要窗口移动就会触发
//for ff
只有等窗口的大小改变停止时,才会触发
最大化时,或者最小化时.resize事件会一直触发;
最后附上一个兼容事件类库.
eventUtil.js
//跨平台事件; var EventUtil = new Object; EventUtil.addEventHandler = function(oTarget, sEventType, fnHandler){ if (oTarget.addEventListener) { //dom标准事件处理函数,false参数指定为冒泡阶段 oTarget.addEventListener(sEventType, fnHandler, false); } else if (oTarget.attachEvent) {//for IE oTarget.attachEvent("on" + sEventType, fnHandler); } else {//for others browser oTarget["on" + sEventType] = fnHandler; } } //移除一个对象的事件; EventUtil.removeEventHandler = function(oTarget, sEventType, fnHandler){ if (oTarget.removeEventListener) { //与上一样,指定为false才能正常去除事件; oTarget.removeEventListener(sEventType, fnHandler, false); } else if (oTarget.detachEvent) { oTarget.detachEvent("on" + sEventType, fnHandler); } else { //other browser remove function; oTarget["on" + sEventType] = null; } } //---------------------------------------------------------------华丽的分割线------------------------------// //格式化event对象,让他们全面兼容ff and ie; EventUtil.formatEvent = function(oEvent){ if (isIE && isWin) { //IE中的字符代码是在keypress事件发生时,包含在keyCode属性中的.所以事件类型为keypress时,需要创建charCode属性,其值为keyCode;否则置它为0; oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0; //eventPhase在DOM中代表所处的阶段,IE仅支持一个值为2,这个属性始终等于2代表冒泡阶段,因为IE仅支持此阶段; oEvent.eventPhase = 2; //ie不支持isChar属性,所以我们设定当charCode不为0时,为true; oEvent.isChar = (oEvent.charCode > 0); //ie不支持pageX,与pageY,不过可以通过clienX,clienY,的值及文档主体中的scrollLeft和scrollTop的值计算出他们; oEvent.pageX = oEvent.clientX + document.body.scrollLeft; oEvent.pageY = oEvent.clientY + document.body.scrollTop; //下面是阻止默认动作; oEvent.preventDefault = function(){ this.returnValue = false; //此时this代表oEvent事件对象; } //然后就是Dom的relatedTarget属性即可能是IE的 fromElement也可能是toElement属性,这由事件类型决定; if (oEvent.type == "mouseout") { //要离开的地方; oEvent.relatedTarget = oEvent.toElement; } else if (oEvent.type = "mouseover") { //要去往的地方; oEvent.relatedTarget = oEvent.fromElement; } //兼容事件的阻止默认行为,将IE的cancelBubble设置为true即可; oEvent.stopPorpagation = function(){ oEvent.cancelBubble = true; } //然后是target属性,确切的说它等同于IE的srcElement; oEvent.target = oEvent.srcElement; //对于timestamp属性,创建一个Date对象,获取它的毫秒数即可; oEvent.timestamp = (new Date()).getTime(); } return oEvent; } //---------------------------------------------------------------华丽的分割线------------------------------// //获取事件对象; //IE和Dom使用不同的方法来获到event对象,ie是与window对象相关的,而在dom中它独立于其它对象,并且是作为参数传递的. EventUtil.getEvent = function(){ if (window.event) { return this.formatEvent(window.event); } else { //每个函数都有一个caller属性,它包含了调用它的方法的此用;被调用的自己又指回到自己的参数; //funcA调用funcB,那么funcB.caller指向到funcA; return EventUtil.getEvent.caller.arguments[0]; } }
发表评论
-
js继承研究
2010-03-05 00:21 790<!DOCTYPE html PUBLIC &quo ... -
autoclick: 鼠标在链接上停留2秒后自动打开该链接 (uc.js脚本)
2009-08-25 11:11 2046var AutoClick = { Timeou ... -
脚本化HTTP
2009-08-24 11:42 11741.html,xml及json的响应 text/xml--- ... -
数组元素的操作
2009-08-21 11:46 973还有一种常用的 var a ... -
控制 Flash Player 的 JavaScript 方法一览表【收集纠正】
2009-08-14 11:04 3015控制 Flash Player 的 JavaScr ... -
location.hash实现跨域iframe自适应
2009-08-05 14:11 1316页面域关系: 主页面a.html所属域A:www.taoba ... -
jquery读取xml文件示例
2009-06-24 22:50 6710<?xml version="1.0&qu ... -
在jQuery中利用AJAX加载XML数据并解析
2009-06-24 16:42 11681,Content-Type很多时候无法解析就是Content ... -
ajax学习的好地方
2009-06-24 12:06 903http://www.ajaxa.cn/ http://ww ... -
ADS公用库
2009-05-26 12:20 1278/** * ADS Library from Advanc ... -
ie and firefox js差异点
2009-05-04 16:38 1175尽管 JavaScript 历史上使用冗长而令人生厌的代码块来 ... -
ajax loading 图标在线制作及收藏
2009-04-22 11:57 1352ajax loading 图标在线制作及收藏 h ... -
一个比较新鲜的判断浏览器的方法
2009-03-25 00:50 862long long ago,在子鼠的博客上看见过一段用Ja ... -
一些图片在js应用的资料
2009-03-24 23:17 709//预装载一个图片; ... -
创建元素节点和文本节点的基础语法
2009-03-16 23:31 888<script type="text/ja ... -
自己整理的一套javascript小型公用库
2009-03-16 13:43 1002/** * @author zjq common ... -
IE DOM的一致性
2009-03-11 19:49 915if(n.nodeType)==1 //NodeType ... -
第8章:检测浏览器和操作系统
2009-03-10 22:12 16851navigator对象 8.2浏览器的检测方式 1.对象/ ...
相关推荐
在这个学习笔记中,涵盖了从基础到高级的JavaScript和DOM操作技巧,一共涉及1~9章的内容。以下是对这些章节知识点的详细阐述: **第1章:JavaScript简介** 本章介绍了JavaScript的基本概念,包括它是一种解释型、弱...
《李炎恢JavaScript-pdf文档笔记》是一份详细记录了JavaScript编程语言基础知识至高级应用的教程,涵盖了从第一章到第三十四章的丰富内容。这个压缩包包含了一份PDF文档,旨在帮助学习者深入理解并掌握JavaScript的...
最后,第九章讲述了DHTML的应用,展示了如何将前面章节学到的知识综合运用到实际开发中,创建具有丰富交互功能和动态效果的网页。全书的结构严谨,内容丰富,不仅适合初学者逐步学习,也为有一定基础的网页设计人员...
这本“JavaScript高级程序设计第四版”的学习笔记涵盖了JavaScript的各个方面,旨在帮助学生、开发者以及对编程感兴趣的人深入理解这一强大的脚本语言。这份笔记是针对毕设、课设、项目实训等实践性学习场景编写的,...
### JavaScript DOM 编程知识点详解 #### 一、DOM 基础概念 **DOM (Document Object Model)** 是一种用于表示 HTML 和 XML 文档的标准对象模型。它将文档定义为节点树,允许开发者通过编程方式访问和修改这些节点...
这15章的学习笔记详尽地介绍了ASP网络编程技术,并结合网上商城实例,让读者能够理论联系实际,逐步掌握开发动态网站的能力。通过学习,不仅可以提升编程技能,还能为创建自己的网站打下坚实的基础。
根据文件内容,以上知识点涵盖了编程语言的基础概念、计算机语言的分类、编程与标记语言的区别、翻译器的功能、计算机的基本组成与数据存储原理、JavaScript语言的起源、功能和执行环境以及ECMAScript标准。
《JavaScript忍者秘籍(第2版)》是一本深入探讨JavaScript编程技巧的书籍。本书涵盖了从基础概念到高级特性的广泛内容,旨在帮助读者成为JavaScript编程的高手。以下是对书中第一章和第二章主要内容的详细阐述。 #...
"javascript初级笔记本第一季"是一份由cssrain总结的JavaScript基础知识讲义,旨在帮助初学者建立起坚实的JavaScript基础。以下是对这份讲义中可能涵盖的知识点的详细解析: 1. **变量与数据类型**:JavaScript是一...
这本“JavaScript笔记”涵盖了该语言的核心概念、语法、数据类型、控制结构、函数、对象、DOM操作以及事件处理等多个关键领域。 一、基础语法 JavaScript的基础包括变量声明(var、let、const)、数据类型(原始...
这篇笔记主要涵盖了JavaScript的第二天课程内容,旨在深入理解并掌握JavaScript的基础知识。以下是对这些知识点的详细解释: 1. **变量与数据类型** - 变量:JavaScript中的变量是用于存储数据的容器。使用`var`, ...
理解这些基础知识是掌握JavaScript的第一步,随着学习的深入,还将涉及DOM操作、事件处理、函数、对象、数组、正则表达式、闭包、异步编程等更多概念。JavaScript的灵活性和广泛应用使其成为Web开发不可或缺的一部分...
9. **异步编程**:JavaScript是单线程的,但通过回调函数、Promise、async/await等方式实现异步操作,解决耗时任务阻塞UI的问题。 10. **模块化**:ES6引入了模块系统,通过import和export关键字实现模块间的导入...
9. **原型与继承**:JavaScript使用原型链实现对象的继承,理解`__proto__`、`prototype`和`Object.create`对于面向对象编程至关重要。 10. **ES6及之后的新特性**:包括箭头函数、模板字符串、解构赋值、类(class...
### JavaScript编程基础知识详解 #### 一、JavaScript代码的放置与引入方式 1. **JavaScript代码应置于`<script></script>`标签内** - JavaScript 代码通常被包含在 HTML 文件中的 `<script>` 标签之间。 - 示例...
这篇学习笔记主要涉及了JavaScript的基础概念和一些高级特性,包括预编译、作用域、函数、对象原型、原型链、函数调用方式(如call、apply)、继承模式、对象克隆、数组操作、自定义类型判断以及错误处理机制。...
《JavaScript忍者秘籍(第2版)》是JavaScript编程领域的一本经典之作,它深入浅出地介绍了JavaScript的核心概念和技术。这本书不仅包含了基础语法,还涵盖了高级特性,旨在帮助读者成为JavaScript的高手,即“忍者...
JavaScript,作为全球最广泛使用的编程语言之一,是前端开发的核心技术。这门语言以其灵活性、动态性和丰富的库与框架著称。本学习笔记全面涵盖了JavaScript的语法和用法,旨在帮助初学者快速掌握并深入理解这门语言...