JS——事件详情(默认行为、阻止默认行为的用法:return false等)

默认行为

1》默认行为

  解释——也称作:默认事件。即不需要自己编写代码,浏览器自身所具备的一些功能

例如下图片所示:

在浏览器中单击右键,出现浏览器默认的菜单栏选项(这是最简单的默认行为)

2》阻止默认行为

案例1:屏蔽右键菜单(即消除上图所示的“浏览器右键出现菜单栏”事件)

代码如下所示:

注:oncontextmenu 事件:在元素中用户右击鼠标时触发并打开上下文菜单。并用return false(普通写法)来阻止默认行为【关于阻止默认行为,这篇文章可以好好阅读:http://caibaojian.com/javascript-stoppropagation-preventdefault.html#comments (经测试文章中的方法也可以实现阻止默认行为)】

1 <script>
2         document.oncontextmenu=function(){      //浏览器自带右键菜单栏事件
3             return false;                       //阻止“浏览器自带右键菜单栏”事件发生
4         }
5 </script>

案例2:弹出自定义右键菜单栏(即模仿“浏览器右键出现菜单栏”事件)

演示效果如下:

代码如下所示:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4 <meta charset="UTF-8">
 5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7 <title>Document</title>
 8 <style>
 9   ul{
10   position: absolute;
11   float: left;
12   list-style: none;
13   background: #ccc;
14   width: 100px;
15   padding: 0;
16   margin: 0;
17   text-align: center;
18   top: 0;
19   left: 0;
20   display: none;
21   }
22 </style>
23 </head>
24 <body>
25   <script>
26       window.onload=function(){
27           var oUl=document.getElementById(‘ul‘);
28           var scrollTop=document.documentElement.scrollTop || document.body.scrollTop;
29           var scrollLeft=document.documentElement.scrollLeft || document.body.scrollLeft;
30
31           document.oncontextmenu=function(e){
32               oUl.style.display=‘block‘;                      //把隐藏的ul元素显示出来
33
34               oUl.style.left=e.clientX+scrollLeft+‘px‘;       //跟随鼠标位置移动而显示
35               oUl.style.top=e.clientY+scrollTop+‘px‘;
36
37               return false;                                   //阻止浏览器自带右键菜单事件
38           }
39
40           document.onclick=function(){                        //实现任意点击隐藏ul元素
41               oUl.style.display=‘none‘;
42           }
43       }
44   </script>
45 </body>
46 <ul id="ul">
47     <li>登录</li>
48     <li>注册</li>
49     <li>我的</li>
50     <li>vip</li>
51 </ul>
52 </html>

代码思路说明:

第32行代码:把隐藏的ul元素显示出来;

第37行代码:阻止浏览器自带右键菜单事件;(用到return false方法)

第40行代码:实现任意点击隐藏ul元素;

第28-29行代码:声明‘’滚动条“变量(scrollTop、scrollLeft);

第34-35行代码:用到‘事件(event)方法’,让ul跟随鼠标位置移动而显示;(前面文章有讲解过:https://www.cnblogs.com/ytraister/p/10959867.html

原文地址:https://www.cnblogs.com/ytraister/p/10976467.html

时间: 2025-01-16 23:16:29

JS——事件详情(默认行为、阻止默认行为的用法:return false等)的相关文章

原生js使用forEach()与jquery使用each遍历数组,return false 的区别

原生js使用forEach()与jquery使用each()遍历数组,return false 的区别: 1.使用each()遍历数组a,如下: var a=[20,21,22,23,24]; $.each(a, function(index,val) { console.log('index='+index); if(index==2){ return false; } console.log('val='+val); }); 结果如下: 从运行的效果可以看出,return 相当于循环中的br

JS——事件详情(拖拽案例:onmousedown、onmousemove、onmouseup方法)

实现拖拽案例 效果如下图所示: 代码如下图所示: 代码思路说明: 第23行代码:在div元素中触发onmousedown事件,实现鼠标在div按下,不提起功能 [区别于onclick,onclick:按下.提起事件,属于两个动作(即:onmousedown+onmouseup)] 第20-21行代码:声明变量,用于计算鼠标按下位置到div位置长度距离 (详细见下图解释分析) 第24-25行代码:设置鼠标按下位置到div位置长度距离(即:鼠标位置-div左边距到浏览器的长度距离) (详细见下图解释

JS——事件详情(鼠标事件)

鼠标位置 1>可视区位置:clientX.clientY 跟着鼠标移动的div案例 代码如下图:   这个案例,运用到前一篇文章中的event事件来处理.获取div的left和top值,当鼠标移动时,div的left和top值跟着鼠标位置改变而改变.(注意的是:需要给div设置绝对定位) 演示效果如下图: 但是!!! 当我给body设置高度时,改变body的高度,这个案例效果就发生变化了,变得很诡异. 代码如下图: 效果图显示如下: 为什么给body设置了一个2000px的高度后,这个案例就变得

JS——事件详情(键盘事件:keyCode、ctrlKey...)

键盘事件 1>keyCode 1)keyCode方法——即:获取用户按下键盘所对应的键值 2)案例:键盘控制div移动 案例代码如下图: 2>其他属性 1)ctrlKey.shiftKey.altKey(这三个的用法相同) 用法:ctrlKey 事件属性可返回一个布尔值,指示当事件发生时,Ctrl 键是否被按下并保持住.若点击了ctrl键,则为true:反之则为false: 但,需要注意的是:alt键,因为是关联到计算机系统 本身的按键,所以建议少用altKey这个方法. 2)案例:提交留言

这可能是最简明扼要的 js事件冒泡机制+阻止默认事件 讲解了

哎 js事件冒泡机制和阻止冒泡 阻止默认行为好像永远也整不清楚,记了忘 忘了记...醉了 这篇文章写完以后下次再忘记 就呼自己一巴掌,忘一次一巴掌 首先要明白两个概念--事件和事件流 事件指的是用户或浏览器自身执行的某种动作,又称为原始事件模型,例如onclick等 事件流指的是 从页面中接收事件的顺序,也就是说当一个事件产生时,这个事件的传播过程就叫做事件流. 事件冒泡: 从事件目标开始 一级级向上冒泡,到document为止--从里到外 IE 5:div--body--document; I

JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

在前端开发中,有时我们需要阻止冒泡和阻止默认事件的发生. 一.event.stopPropagation() 阻止事件的冒泡,不让事件向documen上蔓延,但是默认事件任然会执行,当调用这个方法的时候,如果点击一个连接,这个连接仍然会被打开. 二.event.preventDefault() 阻止默认事件的方法,调用此方法时,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素: 三.return false: 这个方法比较暴力,会同时阻止事件冒泡也会阻止默认事件:写上此代码,连接不会被

阻止事件冒泡,阻止默认事件

阻止事件冒泡 html代码: <table>  <tr>    <td><span>冒泡事件测试</span></td>  </tr></table> js代码: $('table').click(function(){    alert('table');});$('td').click(function(){    alert('td');});$('span').click(function(e){   

阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

今天来看看前端的冒泡和事件默认事件如何处理 1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event.preventDefault()方法 这是阻止默认事件的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素: 3.return false  : 这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件:写上此代

javascript, jQuery阻止默认事件和冒泡事件

事件冒泡(event bubbling) 事件冒泡是指一个元素上的事件被触发,然后这个事件按嵌套顺序在父级元素上触发,直至document根节点. 例如: <!DOCTYPE html> <html> <head> <title>Event Bubbling Example</title> </head> <body> <div id="myDiv">Click Me</div>