Я разрабатываю и поддерживаю виджет jQuery с именем jquery-ui-picklist . Я давно хотел удалить зависимость от пользовательского интерфейса jQuery, чтобы его можно было использовать как в приложениях jQuery, так и в приложениях пользовательского интерфейса jQuery.
Я избегал перехода, пока вчера не понял, что могу просто сделать что-то вроде этого:
(function($)
{
if($.widget == null)
{
// Contents of jquery.ui.widget.js, straight from jQuery UI, goes here.
}
$.widget("awnry.pickList",
{
// My widget's actual code goes here.
});
}(jQuery));
(Если вам интересно, полный источник виджета можно найти здесь .)
Само собой разумеется, что чувствовать себя грязным и хакерским, включая, буквально, код поставщика, как этот. Есть ли более правильный, элегантный или лучший способ отбросить зависимость jQuery UI, не заставляя моих пользователей добавлять еще одно JS-включение на свои страницы?