Przydało mi się ostatnio… w jQuery

 

Nie ma tu ostatnio nowych wpisów, bo trzeba w końcu trochę pozarabiać normalnie, czyli majstrowaniem przy WWW. Kilku rozwiązań trochę szukałem, więc pomyślałem, że może i komuś innemu się przyda.

Ciągle się uczę nowych rzeczy w jQuery, więc jeśli coś można lepiej zrobić, to będę wdzięczny za info ;)

Dodanie optgroups do cForms II

Do formularza w cForms II musiałem dodać optgroups, których domyślnie to fajne rozszerzenie nie obsługuje. Z pomocą przyszło takie małe rozwiązanie Jasona Gilla, które wykorzystuje jQuery:

if($(".cform").length!=0){
  $(".cform select option").each(function(){
    if($(this).val() == "groupstart"){
      var label = $(this).text();
      $(this).nextUntil('option[value|="groupend"]')
        .wrapAll("<optgroup label='"+label+"' />");
      $(this).detach();
    }
  });
  $('option[value|="groupend"]').detach();
}

I potem wystarczy już tylko odpowiednio wypełnić zawartość wpisu:

Color#Choose|#Warm Colors|groupstart#red#orange#yellow#groupend#Cool Colors|groupstart#blue#green#purple#groupend

Optgroups pomogły mi jeszcze trochę pooszukiwać cForms – w zależności od wybranej opcji w jednym select, w drugim pojawiał się dostępny tylko odpowiedni optgroup.

Kliknięcie poza konkretnym obszarem

W innym projekcie miałem obszar, który miał się ukrywać po kliknięciu poza jego obszarem… z całą masą wyjątków w postaci dwóch czy trzech menusów, które były w różnych miejscach strony i miały na tym obszarze coś ładować.

Gdzieś w sieci znalazłem takie rozwiązanie:

$(document).bind('click', function(e){ 
	var $clicked = $(e.target); 
	if (!($clicked.is('#element1') || $clicked.parents().is('#element1') || $clicked.is('#element2') || $clicked.parents().is('#element2'))) { 
		// Tu właściwe akcje po kliknięciu
	} 
});

UI.Spinner do pełnych godzin

W jakimś formularzu miałem dorzucić „spinnera” do wyboru godzin. W sieci można znaleźć setkę gotowych spinnerów, które albo radzą z sobie z liczbami ale już nie z datami, albo pełne kombajny z datepickerami, które kłócą się z czymś, co dodał wcześniej ktoś inny. Na szczęście prosty ui.spinner Burnetta poradził sobie z pełnymi godzinami, wystarczyło dać w value godzinę w postaci np. „6.00” i potem odpalić spinnera w postaci:

$('#godzina').spinner({ min: 6.00, max: 20.00, step: '1.00' });  

Wpis opublikowany 13 listopada 2011
Tagi: , , ,
Kategorie: prywata, webdesign, webmaster, wordpress, wszystkie

Zobacz również:

Komentarze do wpisu "Przydało mi się ostatnio… w jQuery"

Robisz zakupy w internecie?
Pomagaj ZA DARMO przy okazji
4000 organizacji społecznych i ponad 1000 sklepów