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
}

좋은 웹페이지 즐겨찾기