다른 버전의addEvent와removeEvent
4491 단어 remove
(function() {
window.EventUtils = {
eventFuncs : [],
addEvent : function(o, n, f) {
var el, id;
// Resolve element by id if needed
o = typeof(o) == 'string' ? document.getElementById(o) : o;
if (o.attachEvent) {
// Since we can't use attachEvent we need to generate an unique id for the object
// and place functions in an array one for each object
el = EventUtils.eventFuncs;
id = o._evtID;
if (!el[id]) {
// Generate new unique id
id = o._evtID = el.length;
// Add event listener old fashion way instead of attachEvent
o['on' + n] = function() {
var i, l, e = window.event, li;
e.target = e.srcElement; // Force W3C style
// Execute each event listener in order
for (i = 0, li = el[e.target._evtID], l = li.length; i < l; i++)
li[i](e);
};
// Create array with first function
el[id] = [f];
} else
el[id].push(f); // Push in more functions
// Fix the IE leak
o = null;
} else if (o.addEventListener)
o.addEventListener(n, f, false);
else
o['on' + n] = f;
return f;
},
removeEvent : function(o, n, f) {
var i, li;
// Resolve element by id if needed
o = typeof(o) == 'string' ? document.getElementById(o) : o;
if (o.detachEvent) {
li = EventUtils.eventFuncs[o._evtID];
if (li) {
// Detach event listener by looking for it and remove it from the array
for (i = 0; i < li.length; i++) {
if (li[i] === f)
li.splice(i, 1);
}
}
} else if (o.removeEventListener)
o.removeEventListener(n, f, false);
else
o['on' + n] = null;
}
};
})();
(function() {
window.EventUtils = {
eventFuncs : [],
addEvent : function(o, n, f) {
var el, id;
//Resolve element by id if needed
o = typeof(o) == 'string' ? document.getElementById(o) : o;
if (o.attachEvent) {
//Since we can't use attachEvent we need to generate an unique id for the object
//and place functions in an array one for each object
el = EventUtils.eventFuncs;
id = o._evtID;
if (!el[id]) {
//Generate new unique id
id = o._evtID = el.length;
//Add event listener old fashion way instead of attachEvent
o['on' + n] = function() {
var i, l, e = window.event, li;
e.target = e.srcElement;//Force W3C style
//Execute each event listener in order
for (i = 0, li = el[e.target._evtID], l = li.length; i < l; i++)
li[i](e);
};
//Create array with first function
el[id] = [f];
} else
el[id].push(f);//Push in more functions
//Fix the IE leak
o = null;
} else if (o.addEventListener)
o.addEventListener(n, f, false);
else
o['on' + n] = f;
return f;
},
removeEvent : function(o, n, f) {
var i, li;
//Resolve element by id if needed
o = typeof(o) == 'string' ? document.getElementById(o) : o;
if (o.detachEvent) {
li = EventUtils.eventFuncs[o._evtID];
if (li) {
//Detach event listener by looking for it and remove it from the array
for (i = 0; i < li.length; i++) {
if (li[i] === f)
li.splice(i, 1);
}
}
} else if (o.removeEventListener)
o.removeEventListener(n, f, false);
else
o['on' + n] = null;
}
};
})();
function addListeners() {
var f;
EventUtils.addEvent('elm', 'click', function(e) {
alert('Listener 1: ' + e.target.id);
});
f = EventUtils.addEvent('elm', 'click', function(e) {
alert('Listener 2: ' + e.target.id);
});
EventUtils.addEvent('elm', 'click', function(e) {
alert('Listener 3: ' + e.target.id);
});
EventUtils.removeEvent('elm', 'click', f);
}
Example of an simple event class not using the unload event
Click me and try me in Drip or sIEve!
실행 코드
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
2-1(2) List<E> remove(int index)
: 해당 인덱스의 항목을 리스트에서 삭제한다.
*위 예시 풀이
- 배열로 구성되어있어서 n번방이 지워지면 앞으로 땡겨져서 전체 삭제가 되지 않는다
list에 index 5개가 있어서 for문안에서
{0,1,2,3,4...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
2-1(2) List<E> remove(int index): 해당 인덱스의 항목을 리스트에서 삭제한다. *위 예시 풀이 - 배열로 구성되어있어서 n번방이 지워지면 앞으로 땡겨져서 전체 삭제가 되지 않는다 list에 index 5개가 있어서 for문안에서 {0,1,2,3,4...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.