JS新增/繫結事件監聽函式並傳引數attachEvent和addEventListener相容個瀏覽器
阿新 • • 發佈:2019-02-13
var fn =fun;
if(param)
{
fn =function(e)
{
fun.call(this, param); //繼承監聽函式,並傳入引數以初始化;
}
}
if(obj.attachEvent){
obj.attachEvent('on'+eventName,fn);
}elseif(obj.addEventListener){
obj.addEventListener(eventName,fn,false);
}else{
obj["on" +eventName] = fn;
}
}
*
* 刪除事件監聽函式
*obj 要新增監聽的物件或元素
* eventName 事件名
*fun 監聽函式的名稱
*
function removeEventHandler(obj,eventName, fun) {
if(obj.removeEventListener)
obj.removeEventListener(eventName, fun, false);
else if(obj.detachEvent)
obj.detachEvent("on" + eventName, fun);
else deleteobj["on" + eventName];
}
JS新增/繫結事件監聽函式測試
//新增test02監聽函式
function test2(){
var oview =document.getElementByIdx_x_x_x_x('eT1');
addEventHandler(oview,'click',test02);
}
//刪除test02監聽函式
function test2D(){
var oview =document.getElementByIdx_x_x_x_x('eT1');
removeEventHandler(oview,'click',test02);
}
var test002 = 0;
function test02(){
test002++;
document.getElementByIdx_x_x_x_x('sub').innerHTML = test002;
}
if(param)
{
fn =function(e)
{
fun.call(this, param); //繼承監聽函式,並傳入引數以初始化;
}
}
if(obj.attachEvent){
obj.attachEvent('on'+eventName,fn);
}elseif(obj.addEventListener){
obj.addEventListener(eventName,fn,false);
}else{
obj["on" +eventName] = fn;
}
}
*
* 刪除事件監聽函式
*obj 要新增監聽的物件或元素
* eventName 事件名
*fun 監聽函式的名稱
*
function removeEventHandler(obj,eventName, fun) {
if(obj.removeEventListener)
obj.removeEventListener(eventName, fun, false);
else if(obj.detachEvent)
obj.detachEvent("on" + eventName, fun);
else deleteobj["on" + eventName];
}
JS新增/繫結事件監聽函式測試
//新增test02監聽函式
function test2(){
var oview =document.getElementByIdx_x_x_x_x('eT1');
addEventHandler(oview,'click',test02);
}
//刪除test02監聽函式
function test2D(){
var oview =document.getElementByIdx_x_x_x_x('eT1');
removeEventHandler(oview,'click',test02);
}
var test002 = 0;
function test02(){
test002++;
document.getElementByIdx_x_x_x_x('sub').innerHTML = test002;
}