1. javascript 事件监听是什么
1、事件监听的定义
在Javascript中,浏览器一般分为两大类:
① 基于IE内核的浏览器(版本号小于9的IE浏览器)
② 基于W3C内核的浏览器(版本号大于9的IE浏览器、Firefox、Google等浏览器)
1)基本语法:基于IE内核浏览器
dom对象.attachEvent(type,callback,capture) :为元素绑定事件监听程序
参数说明:
type:绑定的事件类型,如onclick、onmouseover、onmouseout
callback:事件的处理程序,通常是一个匿名函数
capture:使用的浏览器模型,冒泡模型与捕获模型,默认IE8以下的浏览器只支持冒泡模型!
2)基本语法:基于W3C内核的事件监听
dom对象.addEventListener(type,callback) :为W3C内核浏览器绑定事件监听
参数说明:
type:绑定事件类型,不带’on’前缀,如click,mouseover,mouseout
callback:事件的处理程序,通常是一个匿名函数
3、总结事件监听的区别
IE内核的监听方式与W3C内核的监听方式:
①方式不同
IE内核的浏览器使用attachEvent进行绑定
W3C内核的浏览器使用addEventListener进行绑定
②参数不同
IE内核浏览器,其绑定方式一共有三个参数type,callback,capture(使用的浏览器模型)
W3C内核浏览器,其绑定方式一共有二个参数,type和callback
③type参数不同
IE内核的浏览器,type是需要添加’on’前缀的,如onclick
W3C内核浏览器,type是不需要添加’on’前缀的,如click
④触发顺序不同
IE内核的浏览器,其事件监听是先绑定后触发,后绑定的先触发
W3C内核的浏览器,其事件监听是先绑定先触发,后绑定的后触发
2. js 怎么给dom添加监听
给dom元素添加事件来监听一般有两源种方式:
一、函数
<inputtype="button"onclick="clickme()"id="clickme"value="点击我">
<script>
functionclickme(){
alert("我被点击了");
}
</script>
二、为指定对象添加事件处理
<inputtype="button"onclick="clickme()"id="clickme"value="点击我">
<script>
document.getElementById("clickme").onclick=function(){
alert("helloworld");
}
</script>
3. js监听横向滚动条事件
你要监听的对象错误了。你要监听的是fixedDom
varfixedDom=document.getElementById('fixed');
fixedDom.addEventListener('scroll',winScroll,false);
functionwinScroll(e){
debugger
if(fixedDom.offsetLeft<document.body.scrollLeft){
};
if(fixedDom.offsetLeft>document.body.scrollLeft){
};
}
4. 在js中如何触发dom结点上的监听事件
DHTML的API是有click方法用来触发点击事件的,但是没有移动方法来触发移动事件,你可以用fireEvent("onclick");方法来指定触发的事件进行触发!
5. js 有没有办法 判断一个dom元素是否已经绑定了某个事件
js 有办法 判断一个dom元素是否已经绑定了某个事件!
代码如下:
/*
* 事件注册
* @param Element ele
* @param String eventType
* @param Function fn
* @param Boolean isRepeat
* @param Boolean isCaptureCatch
* @return undefined
*/
function loginEvent(ele , eventType , fn , isRepeat , isCaptureCatch){
if (ele == undefined || eventType === undefined || fn === undefined) {
throw new Error('传入的参数错误!');
}
if (typeof ele !== 'object') {
throw new TypeError('不是对象!');
}
if (typeof eventType !== 'string') {
throw new TypeError('事件类型错误!');
}
if (typeof fn !== 'function') {
throw new TypeError('fn 不是函数!');
}
if (isCaptureCatch === undefined || typeof isCaptureCatch !== 'boolean') {
isCaptureCatch = false;
}
if (isRepeat === undefined || typeof isRepeat !== 'boolean') {
isRepeat = true;
}
if (ele.eventList === undefined) {
ele.eventList = {};
}
if (isRepeat === false) {
for (var key in ele.eventList)
{
if (key === eventType) {
return '该事件已经绑定过!';
}
}
}
// 添加事件监听
if (ele.addEventListener) {
ele.addEventListener(eventType , fn , isCaptureCatch);
} else if (ele.attachEvent) {
ele.attachEvent('on' + eventType , fn);
} else {
return false;
}
ele.eventList[eventType] = true;
}
6. js为元素添加监听事件
语法
element.addEventListener(event, function, useCapture);
第一个参数是事件的类型(比如 "click" 或 "mousedown")。
第二个参数是当事件发生时我们需要调用的函数。
第三个参数是布尔值,指定使用事件冒泡还是事件捕获。此参数是可选的。
注意:请勿对事件使用 "on" 前缀;请使用 "click" 代替 "onclick"。
addEventListener可以对一个dom添加多个监听器,并且会顺序执行。
开发中,会遇到多个js文件都使用window.onload,然而只有最后一个绑定的生效,如下:
window.onload = func1();
window.onload = func2();
这时可以用addEventListener来解决:
window.addEventListener('load', func1);
window.addEventListener('load', func2);
7. js如何清除dom节点上的指定监听事件
亲。你第一个“nihao” 用的jquery绑定的。 你删除不能用原生的javascript删除。
可以$('#myBtn').unbind("click")
如果是原生的javascript,添专加事件用 addEventListener , attachEvent 和属removeEventListener,detachEvent 添加和删除。
8. 怎样理解js中的事件监听
js的监听事件就是相当于注册一个监听器,随时检测对应事件有没有发生,如果发生了自动调用定义好的函数来处理。
一般情况下 监听事件是对应于dom元素而言的,同时也需要声明所监听事件种类。
比如可以为一个按钮设置监听事件,点击之后自动调用相应函数处理。
同时可以在用函数处理时使用事件对象(event object)来获得关于触发这个事件的对象的信息。