Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$('#elm').on('click keydown mousedown', someHandler) function on(elm, events, handler) {
if (elm) {
events.split(' ').forEach(function (event) {
elm.addEventListener(event, handler);
});
}
}$('.js-target').plugin('widget'); // возвращает ссылку на инстанс
$('.js-target').plugin('option', 'name'); // получить опцию
$('.js-target').plugin('option', 'name', 'value'); // установить
$('.js-target').plugin('destroy'); // уничтожает всё связанное/\{(.*?)\}/ или тот же MicroTemplate использовать, там пара строчек. А совсем хорошо, когда можно передать функцию, чтобы в зависимости от параметра вернуть нужны html. Тоже самое касается всех имен классов и селекторов, которые используют плагин. Всё должно быть конфигурируемо.data:// Плохо
$(this).data('tooltips');
// Плохо
var NAMESPACE = 'tooltips';
$(this).data(NAMESPACE);
// Нормуль
var NAMESPACE = 'tooltips:' + Math.random();
$(this).data(NAMESPACE, instance);utils. Очень часто бывает, что уже все нужные методы для работы, те же самые: extend, addEvent, each и тому подобное, уже есть, но они оставлены в замыкании из-за чего приходится писать ровно тот же код, неуклонно увеличивая энтропию Вселенной.var self = this;
вроде бы считается антипаттерном, так как давно существует .bind(this) в прототипе Function
Правила хорошего тона при написании плагина на jQuery