Wpis z mikrobloga

Jakiś czas temu napisałem prosty plugin #jquery. Po raz pierwszy z użyciem #travisci i testami #qunit. Z chęcią wysłuchałbym jakiś uwag odnośnie kodu.

http://simivar.github.io/jquery-checkall/

Rozwiązuje on dość popularny problem: checkbox zaznaczający wszystkie checkboxy z daną klasą. Różni się od pozostałych skryptów dostępnych na necie tym, że po zaznaczeniu ręcznie wszystkich checkboxów główny checkbox również jest zaznaczany i odwrotnie - po odznaczeniu przynajmniej jednego główny checkbox jest odznaczany. Some high level shit, man. ( ͡° ͜ʖ ͡°)

#javascript #github #programowanie
  • 10
@simivv: spoko ale ta cala funkcje bez dodatkowych opcji (uniform,icheck) to mozna zmiescic w (razem z "Różni się od pozostałych skryptów dostępnych na necie tym, że po zaznaczeniu ręcznie wszystkich checkboxów główny checkbox również jest zaznaczany i odwrotnie ")

$.fn.checkall = function(o) {
var $this = $(this);
var $target = $(o.target);
$target.change(function(){
var cl = $target.is(':checked').length;
if (cl == 0) {
$this.prop("checked", false);
}
if (cl && $target.length == cl){
$this.prop("checked",
@simivv: no to prosze

$.fn.checkall = function(o) {

var $this = $(this);
var $target = $(o.target);
$target.change(function(){
var cl = $target.is(':checked').length;
if (cl == 0) {
$this.prop("checked", false);
if(o.onNoTargetChecked) o.onNoTargetChecked: (cl);
}
if (cl && $target.length == cl){
$this.prop("checked", true);
if(o.onAnyTargetChecked) o.onAnyTargetChecked(cl);
);
if($.uniform) $.uniform.update($(this));
if($.iCheck) $(this).iCheck("update"));
});

$this.change(function(){
$target.prop("checked", $this.prop("checked"));
if($.uniform) $.uniform.update($target);
if($.iCheck) $target.iCheck("update"));
});

}

autoformat w IDE i masz plugin

i czemu nie używasz change? stawiam że przez
czytelność twojego kodu jest dużo gorsza, pomijając to, że kod ten po prostu nie działa.


@simivv: ja go nie sprawdziłem i napisalem w notatniku w minute, ale jak poprawisz to tak chyba prościej zamiast bawić się w liczniki
@simivv fajnie, że robisz coś sam i publikujesz, ale kilka rad:

- ES6 to powoli standard, podziel Twój projekt na src i dist i pisz z użyciem Babela
- Twój kod jest niespójny jak już powiedzieli koledzy, zainstaluj eslint i zainstaluj sobie configa z Airbnb, jeśli Ci się nie podoba to go zmień, natomiast wtedy zaczniesz przynajmniej pisać w jednym standardzie
- nawiasy klamrowe w nowej linijce, nie wiem co by powiedział