2010-10-10

jQuery .bind('click', handler) vs onclick

Na początek powiem że uwielbiam jQuery które ułatwia mi życie z js ale czasem trzeba robić brzydkie rzeczy dla dobra kodu i next pokoleń które będą ten kod modyfikować.

Dlaczego bind .click jest dobry ?
- nie nadpisujemy html-a robimy wszystko we własnej piaskownicy

Dlaczego bind .click jest zły ?
- gdy mamy kod js który zawiera ponad xxxx lini i na jednym elemencie jest robiony bind w xxx miejscach, a tego nikt nie pamięta może łatwo zepsuć poprzednie funkcjonalności
- jeżeli zaciągniemy coś nowego np ajaxem tracimy bindy na elementy które podmieniliśmy ajaxem, czyli trzeba duplikować kod i wywoływać bind po zaciągnięciu na on success
- nie wszędzie może zadziałać (zależy od przeglądarki)
- unbind na jednym takim samym elemencie zdejmuje z wszystkich co może nieźle namieszać

Dlaczego onclick jest dobry ?
- przejrzystość robiąc onclick="f(); f2(); .." widzimy w jakiej kolejności funkcje mają się wykonać i dorabiając nową funkcjonalność możemy sprawdzić czy komuś czegoś nie psujemy
- po załadowaniu elementu ajaxem z onclick-iem wszystko pięknie działa

Dlaczego onclick jest zły ?
- zdarza się że onclick nie zadziała (tak zdarza się to nawet w XXI wieku :\)
- jest brzydkie


Podsumowując - jeżeli robisz duży projekt gdzie wiele osób będzie modyfikować i używać tego samego pliku js używaj onclick jest bardziej pewne i przejrzyste w kodzie + łatwe do debugowania funkcji które operują na elemencie niż bawienie się w bind i unbind.

Brak komentarzy:

Top 5 List