js阻止默认事件、拖拽等等

1.自定义右键菜单:

 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>无标题文档</title>
 6 <style>
 7 * {margin:0; padding:0; list-style:none;}
 8 #div1 {position:absolute; width:80px; background:#CCC; border:1px solid black; display:none;}
 9 </style>
10 <script>
11 document.oncontextmenu=function (ev)
12 {
13     var oEvent=ev||event;
14     var oDiv=document.getElementById(‘div1‘);
15
16     oDiv.style.display=‘block‘;
17     oDiv.style.left=oEvent.clientX+‘px‘;
18     oDiv.style.top=oEvent.clientY+‘px‘;
19
20     return false;
21 };
22
23 document.onclick=function ()
24 {
25     var oDiv=document.getElementById(‘div1‘);
26
27     oDiv.style.display=‘none‘;
28 };
29 </script>
30 </head>
31 <body>
32 <div id="div1">
33     <ul>
34         <li>aaa</li>
35         <li>bbb</li>
36         <li>ccc</li>
37         <li>ddd</li>
38     </ul>
39 </div>
40 </body>
41 </html>

2、只能输入数字的文本框:

 1 <script>
 2 window.onload=function ()
 3 {
 4     var oTxt=document.getElementById(‘txt1‘);
 5
 6     oTxt.onkeydown=function (ev)
 7     {
 8         var oEvent=ev||event;
 9         //alert(oEvent.keyCode);
10         //0-    48
11         //9-    57
12         //如果 用户按的 不是退格 并且 也不是数字
13
14         if(oEvent.keyCode!=8 && (oEvent.keyCode<48 || oEvent.keyCode>57))
15         {
16             return false;
17         }
18     };
19 };
20 </script>
21 </head>
22 <body>
23 <input type="text" id="txt1" />

3、拖拽:

 1 <style>
 2 #div1 {width:200px; height:200px; background:red; position:absolute;}
 3 </style>
 4 <script>
 5 window.onload=function ()
 6 {
 7     var oDiv=document.getElementById(‘div1‘);
 8
 9     var disX=0;
10     var disY=0;
11
12     oDiv.onmousedown=function (ev)
13     {
14         var oEvent=ev||event;
15
16         disX=oEvent.clientX-oDiv.offsetLeft;
17         disY=oEvent.clientY-oDiv.offsetTop;
18
19         document.onmousemove=function (ev)
20         {
21             var oEvent=ev||event;
22             var l=oEvent.clientX-disX;
23             var t=oEvent.clientY-disY;
24
25             if(l<0)
26             {
27                 l=0;
28             }
29             else if(l>document.documentElement.clientWidth-oDiv.offsetWidth)
30             {
31                 l=document.documentElement.clientWidth-oDiv.offsetWidth;
32             }
33
34             if(t<0)
35             {
36                 t=0;
37             }
38             else if(t>document.documentElement.clientHeight-oDiv.offsetHeight)
39             {
40                 t=document.documentElement.clientHeight-oDiv.offsetHeight;
41             }
42
43             oDiv.style.left=l+‘px‘;
44             oDiv.style.top=t+‘px‘;
45         };
46
47         document.onmouseup=function ()
48         {
49             document.onmousemove=null;
50             document.onmouseup=null;
51         };
52
53         return false;
54     };
55 };
56 </script>
57 </head>
58 <body>
59 <div id="div1"></div>

时间: 2024-11-03 20:58:12

js阻止默认事件、拖拽等等的相关文章

js阻止默认事件的发生

方法一: 如果使用的是DOM0级的事件处理程序,则可以在绑定的函数后边写return false: ele.onclick = function(){ //更改后的事件处理 return false;//默认事件阻止 } 方法二: 如果使用的是DOM2级的事件处理程序,则必须使用event.preventDefault()(非IE)或者event.returnValue = false; 浏览器兼容的写法: function preventDefault(event){ var event =

js阻止默认事件与js阻止事件冒泡

e.stopPropagation(); //阻止事件冒泡 功能:停止事件冒泡 function stopBubble(e) { // 如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.stopPropagation ) { // 因此它支持W3C的stopPropagation()方法 e.stopPropagation(); } else { // 否则,我们需要使用IE的方式来取消事件冒泡 window.event.cancelBubble = true; } }

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

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

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

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

JS阻止冒泡事件以及默认事件发生的简单方法

如果<p>是在<div>里面,那么呢,<P>有一个onclick事件,<div>也有onclick事件,为了触发<P>的点击事件时,不触发父元素的点击事件,那么就需要调用如下函数: 代码如下: function stopBubble(e){ if(e&&e.stopPropagation){//非IE e.stopPropagation(); } else{//IE window.event.cancelBubble=true;

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

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

js 阻止冒泡事件和默认事件

阻止事件冒泡 window.enent ? window.enent.cancelBubble = true : e.stopPropagation() function stopBubble(event){ if(window.event){//兼容IE window.event.cancelBubble=true; }else{ event.stopPropagation(); } 阻止默认事件 window.event? window.event.returnValue=false : e

自定义事件拖拽组件

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>自定义事件拖拽组件</title> <style> #div1{ width:100px; height:100px; background:red; position:abs

javascript事件之: 事件冒泡, 事件捕获 ,阻止默认事件

谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. 冒泡篇: 先来看一段实例: js: var $input = document.getElementsByTagName("input")[0]; var $div = document.getElementsByTagName("div")[0]; var $body = document.getElementsByTagName("