Шаблон для своей jQuery
Шаблон для своей jQuery:
function $(s){ return new Q(document.querySelectorAll(s)); } function Q(x){ this.x = x; this.toggle = function(v, c){ for(var i = 0; i < this.x.length; i++){ this.x[i].addEventListener(v, function(){ this.classList.toggle(c); }); } return this; } } Используется так: $('.class').toggle('click', 'class-active'); Остается только добавить методов. Например: this.on = function(v, f){ for(var i = 0; i < this.x.length; i++){ this.x[i].addEventListener(v, f); } return this; } Теперь можно использовать так: $('.class').toggle('click', 'class-active').on('click', function(){alert('1');}); :) |
|
рони,
Ничеси, надо разобраться) |
void(),
у тебя получается бессмысленный перерасход памяти, т.е. каждый новосозданный объект хранит одинаковые копии методов. |
Rise,
Спасибо за подсказку. Попробую переделать через прототипы и еще поизучаю вашу библиотеку на предмет каких-то идей. Еще я думаю, тут есть проблема с циклами, которые будут все время копироваться, почти в каждом методе, что не очень круто. И, наверно, не лучшая кроссбраузерность. Хотя последний фактор меня пока трогает мало. |
Rise,
а какой паттерн в твоей либе? |
Rasy,
паттерн чего? |
Цитата:
|
Rasy,
да разные паттерны там есть и могут быть, по аналогии с jquery, подробнее здесь, а паттерны кода это может быть всё что угодно, например такую запись в либе "context || document" можно назвать паттерном параметров функции по умолчанию. |
Rise,
Design Pattern |
Часовой пояс GMT +3, время: 12:45. |