中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

JavaScript 事件屬性綁定帶參數的函數

例如不能采用這種調用方式:element.onclick = test();element.onclick = test(arg1,arg2);只能通過element.onclick = function(){ ... };或者element.onclick = test這種方式來實現,所以無法給函數傳遞參數。參考了大量的網上資料,解決這個問題的方式,以代碼為例,如下所示:
復制代碼 代碼如下:
function Handler() { };
Handler.prototype = {
/*
* 把eventType類型的事件綁定到element元素,并使用handler事件句柄進行處理
* 兼容 IE 及 Firefox 等瀏覽器
*
* @param element 在其上注冊事件的對象(Object)
* @param eventType 注冊的事件類型(String),不加“on”
* @param handler 事件句柄(Function)
*/
registerEvent : function(element, eventType, handler) {
if(element.attachEvent) { //2級DOM的事件處理
element.attachEvent('on'+ eventType, handler);
}else if (element.addEventListener) {
element.addEventListener(eventType, handler, false);
} else { //0級DOM的事件處理
element['on'+ eventType] = handler;
}
},
/*
* 獲得帶參數的事件句柄的引用
*
* @param obj 需要綁定事件處理函數的所有者,null 表示 window 對象
* @param func 需要綁定的事件處理函數名
* @param ... 第三個參數開始為綁定事件處理函數的參數,由 0 到多個構成
*/
bind: function(obj, handler) {
obj = obj || window;
var args = [];
for(var i =2; i < arguments.length; i++)
{
args.push(arguments[i]);
}
return function() { handler.apply(obj, args) };
}
}
可能是使用方式為:
function show(txtObj) {
alert(txtObj.value);
txtObj.focus();
txtObj.select();
}
window.onload = function(){
var handler = new Handler();
handler.registerEvent($("txt"), "change", handler.bind(null,show,$("txt")));//采用2級事件模型的方式
//$("txt").onchange = handler.bind(null,show,$("txt"));//JavaScript事件屬性的方式
}

JavaScript技術JavaScript 事件屬性綁定帶參數的函數,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日本高清不卡视频 | 超级乱淫av片免费播放 | 中文字幕 亚洲一区 | 91精品国产91久久综合桃花 | 国产一区二区精品在线观看 | 亚洲国产欧美精品 | 99精品欧美一区二区三区综合在线 | 国产成人精品午夜 | 免费看片国产 | 九九热精 | 97精品超碰一区二区三区 | 久草资源在线视频 | 欧美一级在线 | 国产一区2区 | 超碰在线亚洲 | 女人天堂av | 欧美日韩在线播放 | 欧美激情国产精品 | www国产精品 | 欧美亚洲视频在线观看 | 综合精品久久久 | 91在线第一页 | a级片在线观看 | 一区二区三区久久久 | www国产成人免费观看视频,深夜成人网 | 91精品国产一区二区三区蜜臀 | 国产精品福利久久久 | 亚洲精品国产电影 | 久久99精品久久久久久 | 日韩在线视频播放 | 国产日日操 | 偷拍自拍在线观看 | 黄色免费在线观看网站 | 成人在线视频一区 | 欧美日韩视频在线播放 | 91xh98hx 在线 国产 | 亚洲成人久久久 | 日韩欧美在线视频 | 精品在线| 青青草网| 精品亚洲一区二区 |