jQueryUI + Bootstrap конфликт: как связать внутренние методы jQueryUI? - PullRequest
0 голосов
/ 05 мая 2020

Я хотел бы использовать jQueryUI Spinner на своей веб-странице. Это отлично работает, пока я не использую bootstrap.js одновременно.

Если я также использую bootstrap.js, кнопки прокрутки вверх / вниз больше не видны. Счетчик должен выглядеть так:

enter image description here

Но при использовании bootstrap.js кнопки исчезают.

enter image description here

Сначала я подумал, что проблема в том, что оба jQueryUI и bootstrap.js включают плагин spinner. Поэтому я попытался использовать $.widget.bridge('uispinner', $.ui.spinner), чтобы дать счетчику jQueryUI собственное имя. Однако это никак не повлияло, и проблема осталась прежней.

После запуска jQueryUI шаг за шагом в отладчике я обнаружил, что jQueryUI внутренне применяет плагин button к какой-то части прядильщика. Итак, при использовании bootstrap.js на этом этапе вместо этого вызывается плагин bootstrap button, который портит макет spinner ...

Так что проблема НЕ в том, что я использую spinner, но jQueryUI внутреннее использование модуля button.

Могу ли я что-нибудь сделать, чтобы решить эту проблему?

Только $.widget.bridge('uibutton', $.ui.button) решает проблему, когда я использую uibutton() вместо button() в моем собственном коде, но, конечно, весь код jQueryUI внутри по-прежнему использует button() ...

Мне понадобится способ указать jQueryUI использовать собственный button() плагин вместо Bootstrap версии. Возможно ли это?

Конечно, я мог бы вручную изменить код jQueryUI или bootstrap, чтобы использовать другое имя плагина. Однако это было бы очень громоздко, подвержено ошибкам, сложно поддерживать и было бы кошмаром для отслеживания при использовании стороннего кода, для которого может потребоваться один из этих плагинов.

TL; DR

Есть ли способ легко перенаправить / переадресовать ВСЕ вызовы плагину jQueryUI, включая внутренний один раз?

...