[JavaScript, jQuery, Программирование, Разработка веб-сайтов] Как я в 15 лет написал свой первый jQuery плагин и как их создавать
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Здравствуйте! Я живу в Узбекистане и самостоятельно изучаю веб разработку вот уже третий год. За это время я научился изобретать велосипед самостоятельно решать проблемы, с которыми я сталкивался. Одна из таких проблем и ее решение будет описана здесь. Надеюсь вам будет интересно.
Почему мне пришлось писать плагин?
Я стал создавать статичную страничку, не используя bootstrap по ряду причин, где мне было необходимо вставить слайдер. Можно было бы просто написать слайдер, но хотелось найти решение, которое можно повторно использовать в новых проектах.
Поэтому поискал плагины для вставки слайдера, но я так и не нашел подходящий плагин, который бы устраивал меня по всем критериям: mobile-friendly, с remote-controllers, чтобы весь код умещался в одном файле, компактный код и чтобы были все опции по умолчанию для слайдеров.
Потом я решил написать свой плагин для создания слайдеров, который можно использовать в других проектах и усовершенствовать с помощью сообщества. Плагин называется Slibox.
А второй причиной написания плагина является самообучение и развитие. Создав плагин, я набрался бы опыта в создании плагинов и модулей. А эти знания могли бы мне помочь в будущем.
Почему я использовал jQuery?
Хотя я могу написать код в ванильном JavaScript-е, мне иногда все же удобнее работать с jQuery )
Как же создавать плагины для jQuery?
В первую очередь, надо понимать для чего создается этот плагин, для решения какой именно проблемы. Ведь можно же использовать готовые.
После того, как вы определитесь с выбором проблем, вы можете приступать к разработке.
Шаблон
Первым делом, подключите jQuery к своей странице:
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
Потом, создайте новый файл, и добавьте этот код:
(function($) {
$.fn.plugtest = function(options) {
}
})(jQuery)
Это самовызывающаяся функция для глобализации plugtest. Да, мы назовем наш плагин plugtest. $.fn нужен чтобы мы могли вызвать эту функцию на какой-либо элемент:
<div></div>
и снизу в script элементе:
$('div').plugtest({})
Здесь, в качестве параметра options будет пустой объект.
Действие с this
Если сейчас я добавлю console.log(this) в эту функцию, то на консоль выйдет именно этот элемент:
(function($) {
$.fn.plugtest = function(options) {
console.log(this)
}
})(jQuery)
Настройки
Теперь, мы можем поработать над настройками плагина:
(function($) {
$.fn.plugtest = function(options) {
let o = $.extend({
greeting: 'Привет!'
}, options)
console.log(this[0].tagName + ' говорит ' + o.greeting)
}
})(jQuery)
Функция extend «скрещивает» два объекта в один. Теперь поменяем greeting в нашей инициализации:
$('div').plugtest({
greeting: "Здравствуй!"
})
Открываем консоль и видим это:
Можно ещё добавить функцию возврата, чтобы возвращать в переменную все элементы:
let test = $('div').plugtest({
greeting: "Здравствуй!"
})
(function($) {
$.fn.plugtest = function(options) {
let o = $.extend({
greeting: 'Привет!'
}, options)
return this.each(function() {
console.log(this[0].tagName + ' говорит ' + o.greeting)
})
}
})(jQuery)
Вот, мы написали самый простой плагин, который говорит что-то от имени элемента. Вы можете добавить еще несколько опций и немного поиграться. Если вы думали о создании своего плагина, не ждите начинайте разработку!
Slibox в github-e:
Здесь живет Slibox
Дополнительно
У меня есть опыт по созданию API и приложений на PHP, на фреймворках Laravel и Vue, имею опыт работы с node.js, express.js. Также мне интересно создавать кросс-платформенные десктопные приложения и люблю писать ванильный JavaScript для лучшего контроля приложений. Мне одинаково интересно задачи фронтэнда так и бекэнда.
Хотелось бы удаленно стажироваться в сплоченной команде под наблюдением ментора, где бы пригодились мои навыки (владения световым мечом). Спасибо за советы и мнения.
===========
Источник:
habr.com
===========
Похожие новости:
- [DIY или Сделай сам, Программирование микроконтроллеров, Производство и разработка электроники, Разработка робототехники, Схемотехника] Запускаем камеру от телефона, или что делать, когда ничего не получается?
- [C, C++, Программирование, Реверс-инжиниринг] IDA Pro: работа с библиотечным кодом (не WinAPI)
- [Алгоритмы, Программирование, Процессоры] Разбираемся в моделях кода архитектуры x64 (перевод)
- [JavaScript, ReactJS] 5 типичных ошибок при создании React компонентов (с хуками) в 2020 году (перевод)
- [Apache, DevOps, Nginx, Разработка веб-сайтов, Серверное администрирование] Расширенная настройка web сервера (Nginx + Apache2)
- [.NET, C#, Программирование] Самые простые конечные автоматы или стейт-машины в три шага
- [Микросервисы, Программирование] Микросервисы: шаг назад
- [.NET, C#, Программирование] Магические сигнатуры методов в C# (перевод)
- [JavaScript, Python, Проектирование и рефакторинг] Пара слов об именовании переменных и методов
- [CSS, Ненормальное программирование, Программирование, Разработка веб-сайтов] TailwindCSS – очередной фреймворк или новый шаг эволюции?
Теги для поиска: #_javascript, #_jquery, #_programmirovanie (Программирование), #_razrabotka_vebsajtov (Разработка веб-сайтов), #_jquery, #_javascript, #_jquery_plugins, #_vebrazrabotka (веб-разработка), #_obrazovanie (образование), #_opyt (опыт), #_javascript, #_jquery, #_programmirovanie (
Программирование
), #_razrabotka_vebsajtov (
Разработка веб-сайтов
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 02:32
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Здравствуйте! Я живу в Узбекистане и самостоятельно изучаю веб разработку вот уже третий год. За это время я научился изобретать велосипед самостоятельно решать проблемы, с которыми я сталкивался. Одна из таких проблем и ее решение будет описана здесь. Надеюсь вам будет интересно. Почему мне пришлось писать плагин? Я стал создавать статичную страничку, не используя bootstrap по ряду причин, где мне было необходимо вставить слайдер. Можно было бы просто написать слайдер, но хотелось найти решение, которое можно повторно использовать в новых проектах. Поэтому поискал плагины для вставки слайдера, но я так и не нашел подходящий плагин, который бы устраивал меня по всем критериям: mobile-friendly, с remote-controllers, чтобы весь код умещался в одном файле, компактный код и чтобы были все опции по умолчанию для слайдеров. Потом я решил написать свой плагин для создания слайдеров, который можно использовать в других проектах и усовершенствовать с помощью сообщества. Плагин называется Slibox. А второй причиной написания плагина является самообучение и развитие. Создав плагин, я набрался бы опыта в создании плагинов и модулей. А эти знания могли бы мне помочь в будущем. Почему я использовал jQuery? Хотя я могу написать код в ванильном JavaScript-е, мне иногда все же удобнее работать с jQuery ) Как же создавать плагины для jQuery? В первую очередь, надо понимать для чего создается этот плагин, для решения какой именно проблемы. Ведь можно же использовать готовые. После того, как вы определитесь с выбором проблем, вы можете приступать к разработке. Шаблон Первым делом, подключите jQuery к своей странице: <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
Потом, создайте новый файл, и добавьте этот код: (function($) {
$.fn.plugtest = function(options) { } })(jQuery) Это самовызывающаяся функция для глобализации plugtest. Да, мы назовем наш плагин plugtest. $.fn нужен чтобы мы могли вызвать эту функцию на какой-либо элемент: <div></div>
и снизу в script элементе: $('div').plugtest({})
Здесь, в качестве параметра options будет пустой объект. Действие с this Если сейчас я добавлю console.log(this) в эту функцию, то на консоль выйдет именно этот элемент: (function($) {
$.fn.plugtest = function(options) { console.log(this) } })(jQuery) Настройки Теперь, мы можем поработать над настройками плагина: (function($) {
$.fn.plugtest = function(options) { let o = $.extend({ greeting: 'Привет!' }, options) console.log(this[0].tagName + ' говорит ' + o.greeting) } })(jQuery) Функция extend «скрещивает» два объекта в один. Теперь поменяем greeting в нашей инициализации: $('div').plugtest({
greeting: "Здравствуй!" }) Открываем консоль и видим это: Можно ещё добавить функцию возврата, чтобы возвращать в переменную все элементы: let test = $('div').plugtest({
greeting: "Здравствуй!" }) (function($) {
$.fn.plugtest = function(options) { let o = $.extend({ greeting: 'Привет!' }, options) return this.each(function() { console.log(this[0].tagName + ' говорит ' + o.greeting) }) } })(jQuery) Вот, мы написали самый простой плагин, который говорит что-то от имени элемента. Вы можете добавить еще несколько опций и немного поиграться. Если вы думали о создании своего плагина, не ждите начинайте разработку! Slibox в github-e: Здесь живет Slibox Дополнительно У меня есть опыт по созданию API и приложений на PHP, на фреймворках Laravel и Vue, имею опыт работы с node.js, express.js. Также мне интересно создавать кросс-платформенные десктопные приложения и люблю писать ванильный JavaScript для лучшего контроля приложений. Мне одинаково интересно задачи фронтэнда так и бекэнда. Хотелось бы удаленно стажироваться в сплоченной команде под наблюдением ментора, где бы пригодились мои навыки (владения световым мечом). Спасибо за советы и мнения. =========== Источник: habr.com =========== Похожие новости:
Программирование ), #_razrabotka_vebsajtov ( Разработка веб-сайтов ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 02:32
Часовой пояс: UTC + 5