国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 14:15:58
字體:
來源:轉載
供稿:網友
例如不能采用這種調用方式: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事件屬性的方式
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 青神县| 乃东县| 翼城县| 罗甸县| 康乐县| 朝阳区| 二连浩特市| 柳河县| 陆川县| 额敏县| 弋阳县| 兴安县| 达州市| 桐梓县| 平江县| 靖边县| 志丹县| 上高县| 孟连| 赤城县| 镇平县| 曲周县| 贡嘎县| 中超| 南京市| 怀安县| 牡丹江市| 文成县| 南汇区| 鲁山县| 万年县| 瓦房店市| 双桥区| 岑巩县| 宁乡县| 富川| 娄底市| 晋宁县| 都匀市| 忻城县| 丹棱县|