고유 한 여러 UI "위젯"을 만드는 것과 관련된 응용 프로그램을 만들고 있는데 jQuery로 이러한 UI 구성 요소의 논리를 캡슐화하는 데 좋은 방법을 찾지 못했습니다. 이들은 대부분이며 앱에서 여러 곳에서 재사용하지 않는 일회용 구성 요소입니다.jQuery로 UI 구성 요소 캡슐화
나는 lowpro plugin을 실험 해 왔지만, 내가 원하는 것을 어느 정도 허용하지만, "jQuery 길"을 사용하는 것처럼 느껴진다.
일부 컨텍스트를 제공하기 위해 lowpro를 사용하여 작성한 내용의 일부를 요약하여 보여줍니다. 다른 요소가 마약이 될 수있는 정렬 가능한 목록입니다. 빈 상태로 초기화되면 자리 표시자가 나타납니다.
FieldList = $.klass({
initialize: function() {
this.placeholder = $('#get-started-placeholder');
if (this.items().length == 0) {
this.deactivateList();
} else {
this.activateList();
}
},
items: function() {
return this.element.children('li:visible');
},
deactivateList: function() {
this.element.hide();
this.element.sortable('destroy');
this.placeholder.show();
var instance = this;
this.placeholder.droppable({
hoverClass: 'hovered',
drop: function(e, ui) { instance.receiveFirstField(ui.helper); }
});
},
activateList: function() {
this.placeholder.hide();
this.placeholder.droppable('destroy');
this.element.show();
var instance = this;
this.element.sortable({
placeholder: 'placeholder',
forcePlaceholderSize: false,
tolerance: 'pointer',
handle: 'h4',
opacity: 0.9,
zIndex: 90,
stop: function(e, ui) { instance.receiveField(ui.item); }
});
},
receiveFirstField: function(element) {
...
this.activateList();
},
receiveField: function(element) {
...
}
});
$(function() {
$('ol#fields').attach(FieldList);
}
나는 상태의 비트가 여기에 무슨이주의 사항, 그리고 내가 할 수 있으면 좋겠다 일부 인스턴스 메소드 개인 등 그래서, 말해 줄 수 밖에 어떤 jQuery를 전문가들은이 할 거라고하는 방법 Javsacript를 아마도 그렇게해서는 안되는 어떤 것으로 저지시키는 lowpro와 같은 것에 의지하지 않고? 내가 언급 한 모듈 패턴을 가지고 이와 같은 것을 달성 할 수있는 깨끗한 방법이 있다는 느낌이 들지만 in this thread을 언급했지만 그 조각들은 실제로 나를 위해 오지 않습니다.
감사합니다.