e.preventdefault() 别滥用】的更多相关文章

有的时候我们会为事件回调函数添加一个参数(通常是e),并在函数中加入e.preventdefault():以取消默认行为.由于习惯,我顺手将它写到了一个checkbox的change事件中.由于不同的浏览器解释不同,在IE8上出现了一个bug:change事件能进入,但是UI显示上不能讲复选框的选中状态重绘. 分析原因,是我的e.preventdefault()阻止了状态重绘.去掉后,就好了. e.preventdefault()会阻止什么: checkbox .radio的状态变化(并非所有浏…
因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是  stopPropagation() ,  preventDefault()  和  return false . 它们之间有什么区别, 该何时使用呢? 将在本文中进行讲解. 术语 监听事件, 在在节点上能被监听的页面操作. 如: select 节点的 change 事件, a 节点的 click 事件.浏览器默认动作, 指…
个人笔记,如有错误,望指出. 事件冒泡,举个列子: <li> <a href='http://www.baidu.com'>点击a</a> </li> <script> $('li').click(function () { alert('点击了li'); }); $('a').click(function () { alert('点击了a'); }); </script> 当你点击a的时候,会先弹出‘点击了a’,再弹出‘点击了li’…
因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagation(), preventDefault() 和 return false. 它们之间有什么区别, 该何时使用呢? 将在本文中进行讲解. 术语 监听事件, 在在节点上能被监听的页面操作. 如: select 节点的 change 事件, a 节点的 click 事件.浏览器默认动作, 指特定页面元素…
e.stopPropagation()阻止事件冒泡 <html><head>     <title></title>     <script src="jquery-1.8.2.min.js" type="text/javascript"></script> </head> <body>     <table>         <tr>      …
因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagation(), preventDefault() 和 return false. 它们之间有什么区别, 该何时使用呢? 术语 监听事件, 在在节点上能被监听的页面操作. 如: select 节点的 change 事件, a 节点的 click 事件.浏览器默认动作, 指特定页面元素上带有的功能. 如:…
因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagation(), preventDefault() 和 return false. 它们之间有什么区别, 该何时使用呢? 将在本文中进行讲解. 术语 监听事件, 在在节点上能被监听的页面操作. 如: select 节点的 change 事件, a 节点的 click 事件.浏览器默认动作, 指特定页面元素…
e.preventDefault(); //阻止事件的默认行为,比如a标签的转向,但不阻止事件的冒泡传播e.stopPropagation() //阻止事件的冒泡传播,但不阻止其默认行为returne false; //阻止两者…
所谓的事件有两种:监听事件和浏览器对特殊标签元素的默认行为事件.监听事件:在节点上被监听的事件操作,如 select节点的change事件,a节点的click事件.浏览器的默认事件:特定页面元素上带的功能,如a标签的href跳转,表单的提交事件.执行监听事件在先,浏览器默认事件在后,所以可以在监听事件函数中,阻止浏览器的默认行为.区别:preventDefault() 阻止浏览器默认事件 stopPropagation() 阻止事件的冒泡 return false; 阻止后续的所有行为 <!DO…
阻止浏览器默认事件.什么是默认事件,例如浏览器默认右键菜单.a标签默认连接跳转...,如何阻止呢? Firefox中,event必须作为参数传入.  IE中,event是window对象的属性. event.preventDefault();方法用于取消默认事件,但是不兼容IE,在IE下,要用event.returnValue=false;来处理. document.oncontextmenu=function (ev) { var oEvent=ev||event; if (oEvent.pr…
preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为.既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了.什么元素有默认行为呢?如链接<a>,提交按钮<input type=”submit”>等.当Event对象的cancelable为false时,表示没有默认行为,这时即使有默认行为,调用 preventDefault也是不会起作用的. 我们都知道,链接&…
今天来看看前端的冒泡和事件默认事件如何处理 1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event.preventDefault()方法 这是阻止默认事件的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素: 3.return false  : 这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件:写上此代…
float设计初衷就是为了实现文字环绕效果 原本页面流布局显示如上图所示,运用了float属性后就显示为如下图所示,这就是浮动的设计初衷 float的一些特性:包裹性.破坏性. 包裹的特性其实主要有三个表现:收缩.坚挺.隔绝. float破坏性主要表现在使父容器塌陷(浮动使得父容器塌陷是标准而非bug,否则如果不让父窗口塌陷怎么实现文字环境效果) 浮动的破坏性只是单纯的为了实现文字环绕效果 BFC(block format context)块级格式化上下文 如何解决浮动造成的父容器塌陷? 也就是…
e.stopPropagation()阻止事件冒泡或者捕获 因为事件可以在各层级的节点中传递, 不管是冒泡还是捕获, 有时我们希望事件在特定节点执行完之后不再传递, 可以使用事件对象的 stopPropagation() 方法. 例如:阻止表单提交. e.preventDefault()阻止浏览器默认动作 执行监听函数在前, 触发浏览器默认动作在后. 例如:用户点击链接后,阻止在本页面打开链接. return false等效于同时调用e.preventDefault()和e.stopPropag…
众所周知,javascript中有两种for循环,一种是: var a=['this','is','a','article'], i, len; for( i = 0,len = a.length;i < len; i++ ){ console.log(a[i]); } 另一种是for in循环,形如:for (item in arr){...} for in 循环是用在遍历一个Object的key的时候可用到的,而第一种for循环是专门用来遍历数组里面的元素,如果滥用for in循环将会导致一…
<div id='div0'> <div id='div1'> <a href="#" id='div2'>2222</a> </div> </div> window.onload=function(){ var div0=document.getElementById('div0'); var div1=document.getElementById('div1'); var div2=document.getE…
这两天自己在写一个手机网页,用到了触屏滑动的特效,就是往右滑动的时候左侧隐藏的菜单从左边划出来. 做完之后在手机原生浏览器中运行正常,但在QQ和微信中打开,发现touchmove只会触发一次,而且touchend也经常不触发. 之后百度了一下这个问题,原因是 主要是由于200ms超时导致内核不一定会一直处理touchmove事件,一旦超时会将后续所有的事件转交给UI处理,导致touchmove不会一直触发. 为了解决开发者需要,建议开发者在touchstart时调用event.preventDe…
取消事件:(阻止默认行为) 当事件执行过程中,遇到问题,可取消事件.不再触发 如何e.preventDefault(); <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <a id="a1" href=&qu…
e.stopPropagation()阻止事件冒泡 <head> <title></title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> </head> <body> <table> <tr> <td><span>冒泡事件测试</…
本篇文章主要是对js中的preventDefault与stopPropagation进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 首先讲解一下js中preventDefault和stopPropagation两个方法的区别:preventDefault方法的起什么作用呢?我们知道比如<a href="http://www.baidu.com">百度</a>,这是html中最基础的东西,起的作用就是点击百度链接到http://www.baidu.com…
今天在robert penner(as3 singal的作者)的一篇blog文中顺藤摸瓜到了darron schall的另外一篇blog文(Creating Default, Cancelable Event Handlers),仔细看了一下,忽然有种相见恨晚的感觉.   确实是啊~rober penner的singal我不是第一天就知道了,之后再arpg的demo里面也有用过,只可惜今天才认真看了一下penner的这篇文章,也很可惜在schall发布这个文章的两年后才看到,真遗憾   好了,下…
event.preventDefault()用法介绍 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作).例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单.注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作.无论哪种情况,调用该方法都没有作用. 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作…
见:[C解毒]滥用变量…
e.stopPropagation()此方法用于阻止事件冒泡或者事件捕获.IE8及以下中没有此方法,使用e.cancelBubble=false 来阻止事件冒泡. 当标准W3C中,事件包括捕获阶段和冒泡阶段,当阻止捕获的时候,冒泡阶段就不会有.e.preventDefault() 此方法用于阻止所有浏览器的默认行为,不管该行为是在此方法调用前还是后,ie8及以下使用e.returnValue=false;阻止浏览器的默认行为.return false 在事件中,只是用于阻止本次事件所引起的浏览器…
event.preventDefault()用法介绍 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作).例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单.注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作.无论哪种情况,调用该方法都没有作用. 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作…
必须在dragend和dragover事件内调用“事件对象.preventDefault()”方法.因为在默认情况下,拖放的目标元素是不允许接受元素的,为了把元素拖放到其中,必须把默认处理给关掉.目前支持拖动处理的MIME的类型:1.text/plain:文本文字2.text/html:HTML 文字3.text/xml:XML 文字4.text/url-list:URL列表,每个URL为一行…
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>event.preventDefault demo</title> <script src="//code.jquery.com/jquery-1.10.2.js"></script> </head>…
棒棒哒~ event.preventDefault https://developer.mozilla.org/zh-CN/docs/Web/API/Event/preventDefault stopPropagation https://developer.mozilla.org/zh-CN/docs/Web/API/Event/stopPropagation…
这篇文章算是很基础的了.旨在介绍如何保证页面代码的整洁.以维护性.使用有语义的页面标签,减少标签的滥用. 1. 移除不必要的<div>标签 嵌套在<form><ul>外面的标签没有必要 例子: 2. 使用有语义的标记 <h1><ul><p>等标签,替代<div>,即便样式表丢失,仍然保证页面的可读性. 3. 尽量少的使用<div>标签 4. 代码缩进格式 5. 在</div>结尾处加上这个<d…
<div id="divId1" style="width:500px;height:500px;background-color:#3ac;text-align:center;" align="center"> <div id="divId2" style="width:400px;height:400px;background-color:#f1f; margin:0 auto;"&g…