Добрый день. Было бы интересно узнать, имеет ли право на существование подобный подход к связыванию элементов DOM с javascript-событиями:
jQuery.fn.eventHandler = function(){
/*объект для хранения функций, применяемых к DOM элементам*/
var function_storage = {
testAlert : function(obj, args){
alert(obj);
alert(args);
},
testLog : function(obj, args){
console.log(obj);
console.log(args);
}
}
this.each(function() {
var event = $(this).data('event'),
args = $(this).data('args'),
func = $(this).data('func'),
if (func != null) {
if (event == null) {
event = 'click';
}
$(this).on(event, function (e) {
e.preventDefault();
function_storage[func]($(this), args);
});
}
});
};
$(document).ready(function(){
$('.eventHandler').eventHandler();
});
При этом события добавляются непосредственно в HTML:
<div class="eventHandler" data-func="testAlert" data-event="mouseenter" data-args="test">Навешиваем mouseenter на div</div>
Интересуют плюсы и минусы подобного подхода, прежде всего в плане производительности.