// 이벤트 할당 function on(elem, type, arg1, arg2) { elem = elem || document; type = typeof type === 'string' && type || ''; var handler; handler = arg1 = typeof arg1 === 'string' ? arg1 : typeof arg1 === 'function' ? arg1 : null; if (arg2) handler = arg2 || function () { }; bind(elem, type, function (e) { handler.call(elem, e); // 할당된 Tag Element를 감시하고 해당 이벤트를 할당한다. var elems = elem.getElementsByTagName(arg1); for (var i = 0, length = elems.length; i < length; i++) { if (elems[i].isbind === undefined) { bind(elems[i], type, function (e) { handler.call(elem, e); // bubbling stop stopPropagation(e); }, false); elems[i].isbind = true; } } // bubbling stop stopPropagation(e); }, false); return elem; };