导航:首页 > 编程语言 > textjs事件

textjs事件

发布时间:2025-03-16 09:37:05

『壹』 javascript中的e是什么意思

上面这段代码,在 JavaScript 的事件处理中比较常见,主要是为了兼容老版本的 Internet Explorer(主要是 IE9 之前的版本)而设立的,原因是老版 IE 不支持标准的 W3C 事件处理规范。

这段代码中的 e代表事件(event)对象,即所谓的事件驱动源。下面以鼠标点击事件为例,作一个测试:

(HTML)

<!DOCTYPEhtml>
<html>
<body>
<buttontype="button"id="btn">Click</button>
<scripttype="text/javascript">
//JavaScript代码
</script>
</body>
</html>

(JavaScript)

js">document.getElementById("btn").onclick=function(e){
alert(e);
}

编写一个匿名函数 function(e){ alert(e); },并将其赋值给事件句柄(即 onclick),这是一个回调函数,相当于 onclick(e){ alert(e); }。这段代码在 Chrome、Firefox 或新版 IE(IE9 及以后的版本)等支持标准的浏览器下运行,弹出的应该是类似“[object MouseEvent]”的字符串,说明 e 为事件对象;而在老版 IE 下运行,结果就是“undefined”(未定义)。

显而易见,在标准的流程中,事件对象默认由事件句柄函数的第一个参数传入,供处理函数使用;在老版 IE 中,这个事件对象却无法直接由句柄函数传入,反而可以使用一个全局变量来代表事件对象,这个变量即 window.event。同样,可以用例子验证:

document.getElementById("btn").onclick=function(e){
alert(window.event);
}

在老版 IE 中即可显示 window.event 为对象,说明可以通过这种方式取得事件对象。(其实除了 IE 外,Chrome 等浏览器中也存在window.event,但是在支持标准的浏览器中,我们最好使用标准方式。)

现在,就可以理解为什么会出现 e=e||window.event 这种写法了。因为只有这样才能兼容老版 IE 的事件处理过程:如果浏览器支持标准的处理过程则使用句柄函数传入的第一个参数(e),反之则使用 IE 的处理方法(window.event)。从某种意义上说,标准的事件对象(e) 和老版 IE中的 window.event 可以视为等价的(事实上有一些区别,这里就不详细区分了),两者任何一个有效都可以供我们使用。

document.getElementById("btn").onclick=function(e){
e=e||window.event;
//使用e对象
}

于是,上面的这段代码就可以兼容几乎所有的浏览器了。

『贰』 js图片点击事件

<script type="text/javascript">
function change() {
document.getElementById("img").src = "../../Styles/icons/help2.png";
}

</script>

<img id="img" onclick="change();" src="../../Styles/icons/help.png"/>

//img 本身有一个点击事件 不需要服务器控件,用js就能实现了!

『叁』 javascript,鼠标事件问题!是高手进

要知道,鼠标移动事件是瞬时的,只要鼠标动一动,这个事件就会触发。所以鼠标在Dom上移动一次,会触发很多次鼠标移动事件。这意味着,所谓鼠标停止事件,就夹在两次鼠标移动事件的中间。何为停止?鼠标不动是停止,但鼠标不动是一个持续性的操作,怎么监听事件?


你要监听的是鼠标停止移动事件,也就是说想要监听鼠标在移动一段时间后不再移动这个事件。虽然没有原生的事件支持,但可以通过模拟来实现这个功能。但是在模拟这个功能之前,你必须得明确,你打算怎么定义鼠标停止事件,前面说了,鼠标随便动一动就是很多个鼠标移动事件。那最后一次鼠标移动,距离下一次鼠标移动,间隔多久,你会认为应该触发鼠标停止移动事件呢?


模拟的思路就是,每次鼠标移动,都将这个事件触发的时间点记录下来,当经过一段时间,如果没有触发鼠标移动,就触发鼠标停止移动事件。但显然,这个事件会比较延迟。


下面假定两次鼠标移动间隔超过50毫秒则为停止移动,模拟代码如下:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""

<html>
<head>
<title>NewDocument</title>
<metaname="Generator"content="EditPlus">
<metaname="Author"content="">
<metaname="Keywords"content="">
<metaname="Description"content="">
</head>

<body>
<divid="tar"style="width:300px;height:300px;background:#ddd"></div>
<scripttype="text/javascript">
//鼠标两次移动间隔超过50毫秒为停止移动事件触发
varTIMEOUT_OF_STOP_MOVE=50;

window.onload=function(){
vartar=document.getElementById('tar');
//给div绑定鼠标移动事件
tar.onmousemove=function(){
//获取系统时间,亦为目标最新鼠标移动事件触发时间
varnow=newDate();
//this.lastMove==null
//表示鼠标移动开始
//now-this.lastMove<TIMEOUT_OF_STOP_MOVE
//表示距离上次触发鼠标移动事件不超过TIMEOUT_OF_STOP_MOVE毫秒
if(this.lastMove==null||(now-this.lastMove<TIMEOUT_OF_STOP_MOVE)){
//更新最后移动时间
this.lastMove=now;
//终止鼠标停止事件处理
clearTimeout(this.timer);
//重新绑定鼠标停止事件处理
this.timer=setTimeout(function(){
alert('鼠标停止移动了!');
//鼠标停止移动事件处理
//...
//鼠标停止移动事件的处理代码就写在这里
//...
//清除最后移动时间
this.lastMove=null;
},TIMEOUT_OF_STOP_MOVE);
}
}
}
</script>
</body>
</html>

『肆』 用js怎么写一个回车键盘事件

<script type="text/javascript" language=JavaScript charset="UTF-8">

document.onkeydown=function(event){

var e = event || window.event || arguments.callee.caller.arguments[0];

if(e && e.keyCode==27){ // 按 Esc

//要做的事情

}

if(e && e.keyCode==113){ // 按 F2

//要做的事情

}

if(e && e.keyCode==13){ // enter 键

//要做的事情

}

};

</script>

(4)textjs事件扩展阅读:

Js键盘事件

keydown:按键按下

keyup:按键抬起

keypress:按键按下抬起

<body>

<input id="name" type="text" onkeydown="myKeyDown(this.id)" onkeyup="myKeyUp(this.id)">

</body>

<script>

/*输出输入的字符*/

function myKeyDown(id) {

console.log(document.getElementById(id).value);

}

/*按键结束,字体转换为大写*/

function myKeyUp(id) {

var text = document.getElementById(id).value;

document.getElementById(id).value = text.toUpperCase();

}

</script>

常用的键盘事件对应的键码:

keyCode 8 = BackSpace BackSpace

keyCode 9 = Tab Tab

keyCode 12 = Clear

keyCode 13 = Enter

keyCode 16 = Shift_L

keyCode 17 = Control_L

keyCode 18 = Alt_L

keyCode 19 = Pause

keyCode 20 = Caps_Lock

keyCode 27 = Escape Escape

『伍』 js给某个text标签添加鼠标的双击事件

js 的单双击事件同时存在会有一个问题:双击事件会同时触发单击事件,两个事件存在冲突。
我们加一个延迟时间就能很好的解决这个问题。

原理: 当接收到第一个点击时,我们先把单击事件存储在这个是全局变量 click_store 里,如果 0.3 秒内没有接收到双击事件,就去执行它,如果接收到了,我们把它清理掉,然后去执行双击事件。setTimeout() 可以实现延迟执行。

阅读全文

与textjs事件相关的资料

热点内容
服务器出厂ip和密码忘了怎么办 浏览:784
桌面里的文件 浏览:768
数据线变白色怎么回事 浏览:500
iphone5usb充电 浏览:103
哪个网站买保险可靠 浏览:617
奇迹暖暖安卓ios同步吗 浏览:460
为什么编程的人掉头发 浏览:953
没有编程基础如何开发安卓 浏览:182
win10不能用pin码登录密码错误 浏览:663
薄荷图床显示图片文件失效 浏览:2
linux监控文件大小 浏览:740
javaweb项目压力测试 浏览:622
小米电视误删除系统文件 浏览:277
excel导入多个文件 浏览:136
天眼从哪里导数据 浏览:252
macqq文件保存在哪里 浏览:215
vmx找不到文件 浏览:701
机械制图和编程哪个难 浏览:123
手机怎么看app的病毒 浏览:701
如何固定word里的图片 浏览:426

友情链接