#jquery #html #plugins
#jquery #HTML #Плагины
Вопрос:
У меня есть базовый слайдер, который я создал: https://jsfiddle.net/n68pgfvs /
Что я хочу сделать, так это вместо того, чтобы делать его статичным только для класса, я хотел преобразовать его в плагин, чтобы я мог использовать его несколько раз на одной странице.
Я просматривал эту страницу, чтобы создать простую для начала: https://learn.jquery.com/plugins/basic-plugin-creation /
Итак, я придумал следующее (в качестве теста):
<div>
<div class="test1">This is a test</div>
</div>
<script>
$(".test1").SliderS({
color: "#00FF00"
});
</script>
<script>
(function ($) {
$.fn.SliderS = function (options) {
var settings = $.extend({
autoSlide: 1,
timeoutSet: 4000,
displayNav: 1,
color: "#F00FFF"
}, options);
return this.css({ color: settings.color });
};
}(jQuery));
</script>
Основываясь на руководстве, он должен изменить цвет текста, но этого не произошло.
Как я могу это решить?
Кроме того, каков наилучший способ преобразовать мои статические коды из моего слайдера в плагин, который будет использоваться много раз?
Комментарии:
1. следите за ошибками в консоли. Ошибка «Ползунки — это не функция» должна была быть большой подсказкой
2. Не получил никакой ошибки, но теперь она исправлена. Спасибо.
Ответ №1:
Вы вызываете свой плагин перед его определением. Измените порядок, и он работает нормально:
(function($) {
$.fn.SliderS = function(options) {
var settings = $.extend({
autoSlide: 1,
timeoutSet: 4000,
displayNav: 1,
color: "#F00FFF"
}, options);
return this.css({
color: settings.color
});
};
}(jQuery));
$(".test1").SliderS({
color: "#00FF00"
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
<div class="test1">This is a test</div>
</div>
Комментарии:
1. Спасибо. Есть какие-либо рекомендации, как мне следует продолжить работу с моим кодом слайдера?
2. Этот вопрос слишком широк для StackOverfow. Вам нужно попытаться преобразовать его в плагин самостоятельно, а затем вернуться, если у вас есть конкретный вопрос о вашей реализации.