(13) This
Co je to this a k čemu slouží?
Klíčové slovo this slouží k zjednodušení práce s jQuery. Zastupuje elementy, které jsou vybrány nebo se jich týká určitá akce (třeba s hover). Jak this funguje, vysvětlím na následující ukázce.
$('#leve_menu a').hover(
// při aktivování (třeba najetí myší) prvku "a" v levém menu
function() {
$(this).addClass('hover_leve_menu');
// se konkrétnímu prvku, nad kterým je kurzor, přidá třída
}, function() {
$(this).removeClass('hover_leve_menu');
// a při deaktivaci se třída odebere
}
);
This zastupuje objekt, který je právě aktivní. Bez this by bylo vše hodně složité. Nemohli bychom použít ani tento kód,
$('#leve_menu a').hover(
// při aktivování (třeba najetí myší) prvku "a" v levém menu
function() {
$("#leve_menu a").addClass('hover_leve_menu');
// se konkrétnímu prvku, nad kterým je kurzor, přidá třída
}, function() {
$("#leve_menu a").removeClass('hover_leve_menu');
// a při deaktivaci se třída odebere
}
);
protože by se kód aplikoval na všechny prvky a ne pouze na ten aktivní. Další využití je ve zjednodušení a tvorbě univerzálnějšího kódu, viz tato ukázka:
$("p").click(function(){
// vybereme všechny prvky "p"
$(this).toggle(2000);
// a zde pouze uvedeme this
});
Výhoda je v tom, že když se rozhodneme změnit vybrané prvky, třeba z p na a, tak stačí přepsat první řádek a ostatní už nemusíme. Další výhoda je, že zápis je obvykle kratší a přehlednější, hlavně když vybíráme více prvků podle různých kritérií.
// příklad bez this
$("p").click(function(){
// vybereme všechny prvky "p"
$("p").toggle(2000);
// a zde musíme znova napsat "p"
});
// a když to pak budeme měnit, musíme vše přepisovat,
// protože jsme nepoužili this