js移除onmousemove属性
发布时间:2025-05-21 07:30:48 发布人:远客网络
一、js移除onmousemove属性
event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。
event的某些属性只对特定的事件有意义。比如,fromElement和 toElement属性只对 onmouseover和 onmouseout事件有意义。
下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。
<HEAD><TITLE>Cancels Links</TITLE>
<SCRIPT LANGUAGE="JScript">
if(window.event.srcElement.tagName=="A"&& window.event.shiftKey)
window.event.returnValue= false;
<BODYοnclick="cancelLink()">
下面的例子在状态栏上显示鼠标的当前位置。
<BODYοnmοusemοve="window.status='X='+ window.event.x+' Y='+ window.event.y">
altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX, screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y
--------------------------------------------------------------------------------
当alt键按下时,值为 TRUE,否则为 FALSE。只读。
这个属性仅用于onmousedown, onmouseup,和 onmousemove事件。对其他事件,不管鼠标状态如何,都返回 0(比如onclick)。
检测是否接受上层元素的事件的控制。
event.cancelBubble[= cancelBubble]
FALSE允许被上层元素的事件控制。这是默认值。
二、JS return 用法
首先要说明的一点,JS术语前端程序,php属于后端程序,前端程序和后端程序要交货,必须通过“请求”操作来进行。js代码里可以通过Ajax或者表单来提交给后端的php程序。如果你使用JQuery的话可以使用
$.get("123.php?pos="+"{'x':"+e.screenX+",'y':"+screenY+"}")
来进行Ajax提交。因为你的函数为事件绑定的函数,所以在触发事件以外的其他地方使用时,这个函数是获取不到其参数event的。要提交到php程序的话需要把提交请求的代码放到时间的函数里面。你的函数得改为:
$.get("123.php?pos="+"{'x':"+e.screenX+",'y':"+screenY+"}");
123.php中可以使用json_decode来对传入的pos参数进行解析即可。
另:建议不要在鼠标移动事件里绑定getMousePos这个函数,因为你稍稍移动一下鼠标,就要对php程序进行一次请求,这样会造成对后端程序服务的大量访问。
总体上来说,return一般是用在函数中的用来向解析器表达退出函数并返回调用函数空间的命令。
在JS这个专门用于web的程序设计语言来讲,其使用环境最为广泛的就是在浏览器环境下使用。W3C规定了一些供JS程序和页面代码进行交互的接口,如浏览器级别的BOM(BrowserObjectModel,浏览器对象模型)和DOM(Document Object Model,文档对象模型)。通过这些接口,JS程序就可以畅快淋漓地和页面进行开心的“交谈”和“合作”了。
解析:函数执行到return就返回了调用函数的空间,返回值为undefined,后面的代码将不会被执行,即var bb=0是不会被执行的。当然,这种情况下不写return也是可以的,因为没有返回任何值。
2)退出函数空间并返回函数计算结果。
解析:b函数别调用后返回了内部的变量aa经过计算过后的值,即1。此时调用函数b(),就会返回一个值1,可以使用变量赋值的形式获取函数的返回值,如cc=b(),就将b函数的计算结果赋值给了cc这个变脸;
//根据得分折算出用“优、良、中、差”表示的成绩
if(defen<=100){return"优";}
解析:zhesuan函数通过传入的得分参数defen来折算出“优、良、中、差”表示的成绩。正常情况下,我们通过显示折算算法的直接代码化,需要进行多重判定才能达到效果:
转换为程序代码就要分别写if…else if....else if代码:
elseif(defen>60&&defen<80){
elseif(defen>=80&&defen<90){
elseif(defen>90&&defen<=100){
这样写代码量大,编写和阅读都容易对分段搞错。
if(defen<60){zhesuanjieguo="差";}
if(defen<80){zhesuanjieguo="中";}
if(defen<90){zhesuanjieguo="良";}
if(defen<=100){zhesuanjieguo="优";}
上面的代码无论怎样执行,结果都是"优",就不能达到效果。
因为return具有停止执行后续代码并返回退出函数的作用,所以通过函数来进行折算就不需要作多重判定了,是不是很省事?
onClick='return add_onclick()'与 onClick='add_onclick()'
JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。
而该值决定了当前操作是否继续。
当返回的是true时,将继续操作。
而直接执行时(不用return)。将不会对window.event.returnvalue进行设置
当在<a href="abc.htm" onclick="return add_onclick()">Open</a>中
如果函数 add_onclick()返回 true,那么页面就会打开 abc.htm
否则,(返回 false),那么页面不会跳转到 abc.htm,只会执行你的 add_onclick()函数里的内容.(add_onclick函数中控制页面转到 abc.htm除外
而<a href="abc.htm" onclick="add_onclick()">Open</a>
不管 add_onclick()返回什么值,都会在执行完 add_onclick后打开页面 abc.htm
三、js 判断当前鼠标在哪个元素上
1、声明一个变量(如el),用来存放鼠标所在的元素节点。
2、在body元素上增加一个鼠标事件监听
3、使用事件对象中的target属性,每当鼠标经过一个元素时,就把它赋值给el变量
任何时候,读取el变量的值即为鼠标当前所在的元素。
varel=window.document.body;//声明一个变量,默认值为body
window.document.body.onmouseover=function(event){
el=event.target;//鼠标每经过一个元素,就把该元素赋值给变量el
console.log('当前鼠标在',el,'元素上');//在控制台中打印该变量