Мы придумали решение проблемы.
Он состоит из 3 отдельных шагов:
во-первых, должен быть создан начальный элемент jQuery:
var item = $.create("div");
затем создайте экземпляр объекта javascript, который вы хотите создать, и скопируйте все его функции и свойства в элемент jQuery:
$.extend( item, new foo.bar() );
Наконец, инициализируйте объект. Обратите внимание, что конструктор на предыдущем шаге не может быть использован для этого, так как объект "this" отличается.
item.initialize();
После этого объект $ (item) можно использовать как обычный объект jQuery, плюс он имеет функции и локальные переменные, как обычный объект javascript.
item.doSomething();
var offset = $(item).offset();
Таким образом, вы можете создавать объекты DOM, которые имеют «класс», который может использоваться jQuery.
Кстати, мы использовали DUI для создания пространств имен.
Надеюсь, кто-то найдет решение полезным. Это сделало наш код намного приятнее.