lostm1nd / HackBulgaria

Projects related to the courses at HackBulgaria
1 stars 0 forks source link

Accordion API #9

Closed RadoRado closed 10 years ago

RadoRado commented 10 years ago

Какво ме притеснява в извикването:

  var accordion = new Accordion('dl.accordion');
  accordion.init();
  accordion.expandOn('click');

След създаването с new, следват 2 call-а, които са задължителни, за да работи акордеона, но са напълно излишни за хората, които ще го използват.

Това означава, че за 1 акордеон винаги трябва да имам 3 реда код.

Защо просто да не се даде първоначална конфигурация на конструктура, а самият акордеон да има адекванти defaults, като click за expand :panda_face:

Едно такова нещо би излгеждало така:

var accordion = new Accordion({
  selector: 'dl.accordion',
  expandOn: 'click' 
});

Ако пък не му дам expandOn, нека да има default, за да работи,

init-a е напълно излишен, защото е работа на конструктура :+1:

RadoRado commented 10 years ago

Като погледнах кода за табовете и слайдера - там имам същата забележка.

Общото правило е, че конфигурация през обектен литерал - {} е по-добър избор от конфигурация чрез викане на методи на обекта.

Най-малкото спестява код.

А освен това помага да имаш по-лесни за поддържане defaults: http://api.jquery.com/jquery.extend/ - последният пример с defaults и settings

lostm1nd commented 10 years ago

Оправих акордиона и табовете, но за слайдер не схванах точно каква ти е идеята. Опитал съм да го направя разкачено. Тоест казвам на гоогле апито в кой контейнер да ми слага картинките след като направи търсенето и казвам на слайдера, че той се помещава в този контейнер също. Слайдера си има форматираща функция, която го прави да изглежда по някакъв начин, но тъй като аз преди да направя търсене и да ми се заредят снимки няма как да го форматирам този слайдер, затова тази форматираща функция я давам на гоогле апито и след като зареди снимки то ги форматира спрямо тази форматираща функция.

RadoRado commented 10 years ago

Slider-a по-скоро е отделен слуачай, така че си прав за него :+1: