js中的事件:

事件驱动:

1.事件:js捕获用户的操作或页面中的一些行为

2.事件源:触发事件的对象

鼠标事件:

onclick

ondblclick

onmousedown

onmouseup

onmousemove

onmouseover

onmouseout

页面事件,撤销加载:

onbeforeunload

添加,删除事件具有兼容性:

在IE中:

添加:

obj.attachEvent("on事件","处理程序")

删除:

obj.detachEvent("on事件","方法")

谷歌等支持W3C标准的浏览器中:

添加:

obj.addEventListener("click",fn1,false);

obj.removeEventListener("click",fn1,false);

自定义对象:

var person={

  name:"zhang"

  age:21

  }

调用:console.log(person.name)

示例:

    var Event = {
            add:function(obj, type, foo) {
                if(obj.attachEvent) {
                    obj.attachEvent("on" + type, foo);
                } else if(obj.addEventListener) {
                    obj.addEventListener(type, foo, false);
                } else {
                    obj["on" + type] = foo;
                }
            },
            remove:function(obj, type, foo) {
                if(obj.detachEvent) {
                    obj.detachEvent("on" + type, foo);
                } else if(obj.removeEventListener) {
                    obj.removeEventListener(type, foo, false);
                } else {
                    obj["on" + type] = null;
                }
            }
       };

事件对象:

bu1.onclick=function(e){

  var ev=e||window.event

  }

鼠标相对于浏览器的位置:

ev.ClientX(X轴)

ev.ClientY(Y轴)

鼠标相对于屏幕的位置:

ev.ScreenX

ev.ScreenY

鼠标相对于事件源的位置:

ev.offsetX

ev.offsetY

键盘事件:

document.onkeydown=function(e){

  }

示例:

 div2.onmousedown=function(e){
            var ev=e||window.event;
//            事件发生时:获取到事件源的距离
            var ol=ev.offsetY;
            var al=ev.offsetX;

                this.onmousemove=function(e){
                    var ev=e||window.event;
                    this.style.top=ev.clientY-ol+"px";
                    this.style.left=ev.clientX-al+"px";
                };
                this.onmouseup=function(){
                    this.onmousemove=null;
                }
        };

事件流:

冒泡型事件:从点击处向外响应事件

捕获型事件:从外向内响应事件

阻止事件流:

IE:ev.cancelBubble=true;

其他浏览器:ev.stopPropagation

示例:

div3.onclick=function(e){
        var ev=e||window.event;
        console.log("我是儿子");
//        阻止冒泡事件
        ev.stopPropagation();
 body.addEventListener("click",function(e) {
//        var ev = e || window.event;
//        console.log("我是body");
//        //        阻止捕获事件
//        ev.stopPropagation();
//    },true);

事件委托:

var obj=ev.target||ev.srcElement(返回点击的对象)

 var ul=document.getElementsByTagName("ul");
    ul[0].onclick=function(e){
        var ev=e||window.event;
        var obj=ev.target||ev.srcElement;
        alert(obj.innerHTML);

    }
时间: 2024-12-14 18:12:14

js中的事件:的相关文章

js中的事件,内置对象,正则表达式

[JS中的事件分类] 1.鼠标事件: click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup 2.键盘事件: keydown: 键盘按下去触发 keypress: 键盘按下并松开的瞬间触发 keyup: 键盘抬起时触发 [注意事项:(了解)] ① 执行顺序: keydown--keypress--keyup ② 长按时,会循环不断的执行keydown-keypress ③ 有keydown事件,不一定有keyup事件(事件触发过程

js中鼠标事件总结

js中鼠标事件主要有onclick,onmousedown,onmouseup,oncontextmenu,ondblclick,所有的这些事件都包含有一个事件对象event,当然在IE低版本下,event对象是挂在window底下的.这个我们另行讨论. 1.通过html添加事件 <input type="button" click="alert(1)"/> 2.通过DOM0级方式添加事件 <input type="button"

看懂此文,不再困惑于 JS 中的事件设计

看懂此文,不再困惑于 JS 中的事件设计 今天刚在关注的微信公众号看到的文章,关于JS事件的,写的很详细也很容易理解,相关的知识点都有总结到,看完就有种很舒畅的感觉,该串起来的知识点都串起来了.反正一字节:爽. 作者:aitangyong 链接:blog.csdn.net/aitangyong/article/details/43231111 抽空学习了下javascript和jquery的事件设计,收获颇大,总结此贴,和大家分享. (一)事件绑定的几种方式 javascript给DOM绑定事件

从零开始的JS生活(二)——BOM、DOM与JS中的事件

上回书说道,JS中变量.运算符.分支结构.循环和嵌套循环等内容.本回就由本K给大伙唠唠JS中的BOM.DOM和事件. 一."花心大萝卜"--BOM 1.震惊,FFF团为何对BOM举起了火把--BOM简介 BOM(Browser Object Model) 是指浏览器对象模型,在JS中BOM是个不折不扣的花心大萝卜,因为它有很多个对象,其中代表浏览器窗口的Window对象是BOM的"正室".也就是最重要的,其他对象都是正室的下手.或者叫侧室也不足为过. 2.细数BOM

JS基础--函数与BOM、DOM操作、JS中的事件以及内置对象

   前   言 絮叨絮叨 这里是JS基础知识集中讲解的第三篇,也是最后一篇,三篇JS的基础,大多是知识的罗列,并没有涉及更难得东西,干货满满!看完这一篇后,相信许多正在像我一样正处于初级阶段的同学,经过初步的学习,会对这一门语言有了一定深入的了解,也会感受到这一门语言的强大之处.希望各位同学通过一定的学习,会得到等大的收获. 因为是最后一篇所以内容可能有点多,希望各位同学能够慢慢看,细细看,让我们一起学习,一起进步,一起感受JS的魅力. 一函数 函数的声明及调用 1.函数的声明格式: func

JS中的事件以及DOM 操作

[DOM树节点] DOM节点分为三大节点:元素节点,文本节点,属性节点. 文本节点,属性节点为元素节点的两个子节点通过getElment系列方法,可以去到元素节点 [查看节点] 1 document.getElementById("div1")  通过ID获取唯一的节点  多个同名ID只会取到第一个 2 getElmentsName   通过Name取到一个数组,包含1到多个节点   使用方式   通过循环,取到每一个节点  循环次数从0开始,<数组 length [查看和设置属

DOM 以及JS中的事件

[DOM树节点] DOM节点分为三大节点:元素节点,文本节点,属性节点. 文本节点,属性节点为元素节点的两个子节点通过getElment系列方法,可以去到元素节点 [查看节点] 1 document.getElementById("div1")  通过ID获取唯一的节点  多个同名ID只会取到第一个 2 getElmentsName   通过Name取到一个数组,包含1到多个节点   使用方式   通过循环,取到每一个节点  循环次数从0开始,<数组 length [查看和设置属

JS学习五(js中的事件)

[JS中的事件分类] 1.鼠标事件 click/bdlclick/onmouseover/onmouseout 2. HTML事件 onload/onscroll/onsubmit/onchange/onfocus 3. 键盘事件 keydown:键盘按下时触发 keypress:键盘按下并松开时的瞬间触发 keyup:键盘抬起时触发 [注意事项] ①执行顺序:keydown-->keypress-->keyup ②当长按时,会循环执行keydown-->keypress ③有keydo

js中冒泡事件和捕获事件

js中冒泡事件和捕获事件: 冒泡事件:冒泡事件是从里向外,即是从被绑定元素开始一直向外到达页面的所有祖先元素都会被触发,这 一过程被称为事件冒泡.这个事件从原始元素开始一直冒泡到DOM树的最上层 捕获事件:捕获事件是从页面的最上层到被绑定元素都会触发. IE只支持事件冒泡,不支持事件捕获 冒泡事件和捕获事件的方向是相反的. 形式如下图所示: 一般为浏览器中的元素绑定事件有2种方式: 一.直接在页面元素中进行绑定,此方式采用的是冒泡排序,如: <div id="eventExample&qu

JS中的事件传播流程

JS中的事件传播流程 1,Javascript与HTML之间的交互是通过事件实现的. 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间. 可以使用侦听器来预定事件,以便事件发生时执行相应代码. 2,DOM事件流存在三个阶段:事件捕获阶段,处于目标阶段,事件冒泡阶段. 事件流:事件发生时,事件在元素节点与根节点之间的顺序传播,路径所经过的所有节点都会收到该事件,这个传播过程即DOM事件流.事件传播顺序的两种事件流模型:事件冒泡,事件捕获. 事件捕获(event capturing):事件从最不