Chúng tôi đã đưa ra một giải pháp cho vấn đề. Nó bao gồm 3 bước riêng biệt: đầu tiên, mục jQuery ban đầu phải được tạo ra:
var item = $.create("div");
sau đó tạo ra một thể hiện của đối tượng javascript bạn muốn tạo và sao chép tất cả các chức năng và đặc tính của nó đến mục jQuery :
$.extend(item, new foo.bar());
Cuối cùng, khởi tạo đối tượng. Lưu ý rằng hàm tạo trong bước trước không thể được sử dụng cho điều này vì đối tượng "this" là khác nhau.
item.initialize();
Sau đó, đối tượng $ (mục) có thể được sử dụng như đối tượng jQuery thông thường, có chức năng và biến cục bộ như đối tượng javascript thông thường.
item.doSomething();
var offset = $(item).offset();
Vì vậy, bạn có thể tạo đối tượng DOM có "lớp" có thể được jQuery sử dụng. BTW, chúng tôi đã sử dụng DUI để tạo không gian tên.
Hy vọng rằng ai đó sẽ tìm thấy giải pháp hữu ích. Nó làm cho mã của chúng tôi đẹp hơn nhiều.
Có lẽ bài đăng SO này sẽ giúp bạn bắt đầu: http://stackoverflow.com/questions/1073864/is-jquery-or-javascript-has-concept-of-classes-and-objects –