JS -- 事件

JS – 事件

JS – 事件

Table of Contents

  • 事件分类
  • 事件绑定
  • 冒泡和捕捉
  • event 对象
  • 事件委托
  • 事件的其他属性

事件分类

onBlur       鼠标离开
onFocus      鼠标激活了对象
onChange     修改了对象 <select><option></opttion></select>
onClick      单击了对象
onError      脚本遇到了一个错误
onMouseOver  鼠标指针移动到了对象上
onMouseOut   鼠标指针移开了对象
onReset
onSubmit     用户提交了表单
onLoad       对象完成了加载
onUnload     用户离开了页面
onAbor       终止了页面的加载

事件绑定

静态

<input type="button" onclick="func()" value="xxx">

动态

document.getElementById("xxx").onclick = function() { ... };

上面两种绑定方式的缺点是无法多次绑定

可以多次绑定
addEventListener 绑定
removeEventListener 解除

[Object].addEventListener("name_of_event", fnHandle, bCapture);
[Object].removeEventListener("name_of_event", fnHandle, bCapture);

冒泡和捕捉

// 如果两个都有, 先从外向内

// 第三个参数 flase, 表示冒泡模型, 表示从内向外 开始触发事件
// 第三个参数 true,  表示捕捉模型, 表示从外向内 开始触发事件
one.addEventListener(‘click‘, function() {
    alert(‘one‘);
}, true);
two.addEventListener(‘click‘, function() {
    alert(‘two‘);
}, true);
three.addEventListener(‘click‘, function() {
    alert(‘three‘);
}, true);

one.addEventListener(‘click‘, function() {
    alert(‘one‘);
}, false);
two.addEventListener(‘click‘, function() {
    alert(‘two‘);
}, false);
three.addEventListener(‘click‘, function() {
    alert(‘three‘);
}, false);
....addEventListener(‘click‘, function(ev) {
  ...
  ev.stopPropagation();              // 当触发到某个动作的时候, 停下所有的事件
  ev.cancelBubble();                 // 当触发到某个动作的时候, 停下当前的事件
...
}

阻止表单提交的正确方法, 不要使用 return false;

form.addEventListener(‘submit‘, function(event) {
    if (input.value == ‘‘) {
        event.preventDefault();
    }
});

event 对象

<input ... onmousedown="func(event)">      # 一定要写 event, 不能是 even 等
function func (e) {
    var event = e || window.event;
}
<input ... onmousedown="func()">           # 如果不写 event
function func (e) {
    var event = window.event || arguments.callee.caller.arguments[0];
}

事件委托

event.target

var target = event.target || event.srcElement;

事件的其他属性

ev.button = 0 | 1 | 2  # 左中右

相对于屏幕显示器
screenX
screenY

相对整个页面
pageX
pageY

相对整个页面, 如果滚动条发生改变, 也会改变
clientX
clientY

相对于父亲的距离
offsetX
offsetY

document.body.scrollTop 代表的是被浏览器滑动条滚过的长度

pageY = clientY + scrollTop - clientTop

altKey alt 是否被按下
shiftKey shift 是否被按下
ctrlKey ctrl
keyCode 键盘码

时间: 2024-10-05 03:11:26

JS -- 事件的相关文章

js事件冒泡和事件委托

js所谓的事件冒泡就是子级元素的某个事件被触发,它的上级元素的该事件也被递归执行 html: 1 <ul class="clearfix" data-type="cityPick"> 2 <li class="active_sort_opts" data-id="0">全部</li> 3 <li data-id="88">纽约</li> 4 <

特殊js事件

1:点击enter事件 $(document).keypress(function(e) { // 回车键事件 if(e.which == 13) { submitForm(); } }); 2:JQUERY表单ajax提交事件 1):添加js插件 2):添加js事件 function submitForm(){ $.ajax({ url:'${root}/doLogin', data:$('form').serialize(), dataType:'json', cache:false, ty

JS事件(事件冒泡和事件捕获)

事件流:描述的是在页面中接收事件的顺序 事件冒泡:由最具体的元素接收,然后逐级向上传播至最不具体的元素的节点(文档) 事件捕获:最不具体的节点先接收事件,而最具体的节点应该是最后接收事件 DOM中:用于处理指定和删除事件处理程序的操作addEventListener()和removeEventListener().他们都接收三个参数:要处理的事件名.作为事件处理程序的函数和布尔值(事件处理的时候)[true:事件捕获时;false:事件冒泡时] DOM中的事件对象: type属性 用于获取事件类

略谈js事件

 本人是这样从做学的js事件分成以下三个方面: 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown. onkeypress和onkeyup这三个事件句柄.一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup. 在这3种事件类型中,keydown和keyup比较底层,而keypress比较高级.这里所谓的高级是指,当用户按下shift +

js事件的三个阶段

js事件的三个阶段分别为:捕获.目标.冒泡 1.捕获:事件由页面元素接收,逐级向下,到具体的元素 2.目标:具体的元素本身 3.冒泡:跟捕获相反,具体元素本身,逐级向上,到页面元素 IE5.5:div---body---document IE6.0:   div---body---html---document Mozilla:div---body---html---document---window 事件捕获:当使用事件捕获时,父级元素先触发,子元素后触发 事件冒泡:当使用事件冒泡时,子级元素

JS中的函数、Bom、DOM及JS事件

本期博主给大家带来JS的函数.Bom.DOM操作,以及JS各种常用的数据类型的相关知识,同时,这也是JavaScript极其重要的部分,博主将详细介绍各种属性的用法和方法. 一.JS中的函数 [函数的声明及调用] 1.函数声明的格式: function 函数名(参数1,参数2,参数3,--){//函数体 return 结果; } >>>函数的调用格式: 直接调用:函数调用的格式:函数名(参数一的值,参数二的值,--): 事件调用:事件名=函数名( ); 2.函数声明的几点强调: ①函数名

js事件对象坐标

js事件对象坐标---贴上代码 <body style="position:relative;width:100%;height:100%;padding:15px;margin:20px;"> <div style="position:absolute;top:100px;left:100px;width:500px;height:500px;padding:5px;margin:9px;background:#ddd;" onclick=&qu

JS的Touch事件们,触屏时的js事件

丫的,终于找到了JS在平板电脑上的事件!!! iphone.ipod Touch.ipad触屏时的js事件 1.Touch事件简介 pc上的web页面鼠标会产生onmousedown.onmouseup.onmouseout.onmouseover.onmousemove的事件,但是在移动终端如iphone.ipod Touch.ipad上的web页面触屏时会产生ontouchstart.ontouchmove.ontouchend.ontouchcancel事件,分别对应了触屏开始.拖拽及完成

Js事件大全

一般事件 事件 浏览器支持 描述  onClick IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击  onDblClick IE4|N4|O 鼠标双击事件  onMouseDown IE4|N4|O 鼠标上的按钮被按下了  onMouseUp IE4|N4|O 鼠标按下后,松开时激发的事件  onMouseOver IE3|N2|O3 当鼠标移动到某对象范围的上方时触发的事件  onMouseMove IE4|N4|O 鼠标移动时触发的事件  onMouseOut IE4

js事件浅析

js中关于DOM的操作很多,因此js事件机制也就尤为重要. 事件绑定形式: 一. 内联形式 耦合度高,不利于维护 <button onclick="alert('你点击了这个按钮');">点击这个按钮</button> 二. 属性绑定(DOM0级事件) 只能绑定一个函数 button.onclick = function() {}; 三. 事件监听函数(DOM2级事件) element.addEventListener(<event-name>, &