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)來獲得關於觸發這個事件的對象的信息。