696
 

Интерфейс ‘Events’ для jQuery

По моему скромному мнению, код скриптов, написанных на jQuery порою напоминают что угодно, только не язык программирования JavaScript. Все дело в обильном применении шаблона программирования "цепь" – когда результат выполнения одной функции непосредственно передается в другую:

$('selector').click().onmouseover().onmouseout().focus();

Конечно же это дело вкуса, но лично мне такая запись не всегда нравится. James Padolsey решил немного изменить такую ситуацию, однако только в плане работы с событиями. В одной из своих статей он предложил вариант назначения обработчиков при помощи созданной им функции events:

$(elem).events({
    focus : function(){...},
    click : function(){...},
    mouseup : function(){...},
    'mousedown.namespace' : function(){...},
    exit : function(){...}
});

Как по мне, такой вариант гораздо лучше читается. Хотелось бы, чтобы в jQuery появилась такая функция, тем более, что её реализация очень проста – всего 6 строк:

jQuery.fn.events = function(o){
    for (var i in o) {
        this.bind(i, o[i]);
    }
    return this;
};
Добавить в закладки:
Maklay.com - Большой каталог товаров для спорта и активного отдыха

Комментарии на “Интерфейс ‘Events’ для jQuery”

  1. Целиком и полностью поддерживаю! Свой код иногда трудно прочитать и понять уже через достаточно короткое время, а в чужом да ещё с такими вот “цепями”…
    В общем, ждём появление чего-то подобного…

  2. Можно в принципе и не ждать, а самому добавить эту функцию. Это ж как бы мини-плагин.

  3. ну, можно цепь записывать в таком же стиле
    $(elem)
    .click(function(){})
    .hover(function(){})

    банально меньше знаков, и читается, имхо не сильно хуже. То что выглядит странновато – это да:)

  4. Согласен! Но тут уже скорее дело привычки :)

Оставить комментарий

JSToolbox создан на основе WordPress