@tostershmoster

Почему не работает вызов jquery плагина в консоли?

Так плагин отображается на странице.

Плагин
(function ($) {
  const defaultSettings: ISettings = {
    min: 0,
    max: 100,
    valueFrom: 30,
    valueTo: 70,
    step: 1,
    isTwoRunners: true,
    isScaleVisible: false,
    isTooltipsVisible: true,
    isVertical: false,
    isConfPanel: false,
    isBarVisible: true,
  };

  $.fn.RangeSlider = function (userOptions: ISettings): JQuery {
    const mergedSettings = $.extend({}, defaultSettings, userOptions);
    const elementId = `#${this[0]?.id}`;

    const model: Model = new Model(mergedSettings);
    const view: View = new View(elementId, model.getSettings());
    const presenter: Presenter = new Presenter(model, view);

    return this;
  };
}(jQuery));


Создание инстанса плагина
$('#range-slider').RangeSlider({
  min: 22,
  max: 150,
  valueTo: 54,
  isTwoRunners: false,
  step: 7,
  isConfPanel: true,
});


Но если если вызвать его из консоли
$('#range-slider').RangeSlider();

то выдает ошибку.
624c29a811c2c785691680.png

если ввести в консоль такой код
(function ($) {
  $.fn.testPlugin = function () {
      alert('test');
  };
  return this;
}(jQuery));


а потом
$(document.body).testPlugin()
то алерт с тестом работает

а если этот код с тестовым плагином переношу в к себе вместо слайдера, то он тоже не работает из консоли, при этом когда страница загружается, алерт срабатывает

команда в консоли
$ ().jquery
показывает версию jquery

jquery установлен через NPM в devDependencies

и еще в head строка
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
@tostershmoster Автор вопроса
Нужно добавить в плагин
window.$ = window.jQuery = require('jquery');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы