色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

JavaScript 事件屬性綁定帶參數(shù)的函數(shù)

例如不能采用這種調(diào)用方式:element.onclick = test();element.onclick = test(arg1,arg2);只能通過(guò)element.onclick = function(){ ... };或者element.onclick = test這種方式來(lái)實(shí)現(xiàn),所以無(wú)法給函數(shù)傳遞參數(shù)。參考了大量的網(wǎng)上資料,解決這個(gè)問(wèn)題的方式,以代碼為例,如下所示:
復(fù)制代碼 代碼如下:
function Handler() { };
Handler.prototype = {
/*
* 把eventType類(lèi)型的事件綁定到element元素,并使用handler事件句柄進(jìn)行處理
* 兼容 IE 及 Firefox 等瀏覽器
*
* @param element 在其上注冊(cè)事件的對(duì)象(Object)
* @param eventType 注冊(cè)的事件類(lèi)型(String),不加“on”
* @param handler 事件句柄(Function)
*/
registerEvent : function(element, eventType, handler) {
if(element.attachEvent) { //2級(jí)DOM的事件處理
element.attachEvent('on'+ eventType, handler);
}else if (element.addEventListener) {
element.addEventListener(eventType, handler, false);
} else { //0級(jí)DOM的事件處理
element['on'+ eventType] = handler;
}
},
/*
* 獲得帶參數(shù)的事件句柄的引用
*
* @param obj 需要綁定事件處理函數(shù)的所有者,null 表示 window 對(duì)象
* @param func 需要綁定的事件處理函數(shù)名
* @param ... 第三個(gè)參數(shù)開(kāi)始為綁定事件處理函數(shù)的參數(shù),由 0 到多個(gè)構(gòu)成
*/
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級(jí)事件模型的方式
//$("txt").onchange = handler.bind(null,show,$("txt"));//JavaScript事件屬性的方式
}

JavaScript技術(shù)JavaScript 事件屬性綁定帶參數(shù)的函數(shù),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 衡东县| 沂源县| 盈江县| 吉林市| 内丘县| 陇川县| 霍城县| 镇宁| 潞城市| 香港| 巴彦县| 黄浦区| 遂宁市| 无为县| 石阡县| 昌黎县| 揭西县| 芒康县| 交城县| 治县。| 长顺县| 马公市| 阿图什市| 铅山县| 毕节市| 象州县| 天等县| 濮阳市| 汤原县| 石景山区| 巴楚县| 越西县| 嘉定区| 临夏县| 黄浦区| 乐安县| 石门县| 定结县| 阿勒泰市| 阿拉善左旗| 黑龙江省|