Události
Dokáží zachytit určité chování objektů.
Události se zapisují takto:
$(element).událost(function(){
co se má vykonat, když se událost stane
})
Typy událostí:
- ready – dokument (nebo objekt) se načetl
příklad:
$(document).ready(function(){
/*co se má vykonat*/
})
- click – kliknutí myši
příklad:
$("#tlacitko").click(function(){
/* co se má vykonat */ })
Jiný typ zápisu události pomocí „bind“:
$("#tlacitko").bind("click", function(){
/*co se má vykonat*/
})
Můžeme adresovat objekt pomocí „this“. příklad:
$("p").bind("click", function(){
$( this ).toggle(200);
})
Další typy událostí:
- dblclick – double click, dvojklik
- mouseenter – nájezd myši
- mouseleave – sjezd myši
- hover – registruje myš nad objektem a její sjetí
- mousedown – stisknutí myši
- mousemove – pohyb myši nad objektem
- mouseout – sjetí myši z objektu
- mouseover – myš nad objektem
Adresování událostí
bind – umožní registrovat různé typy událostí – dva parametry – even type (String) – jaký typ události se má registrovat, + funkce, která se má vykonat
$(document).ready(function(){
#("tlacitko").bind("click", function(){
$("p").toggle(2000);
})
})
Nejnámější typy událostí:
- click
- dblclick
- hover
- mousedown
- mouseup
- mouseenter
- mouseleave
- mousemove
- keydown
- keyup
- keypress
- submit
- resize
Odkazování na objekt, kde událost vznikla:
$(this)
Příklad – změna barvy textu po najetí myši:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Karel jede na kole</title>
<style>
.on{
color:lime;
}
</style>
<script src="jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function(){
$("p").hover(function(){
$(this).addClass("on");}, function(){
$(this).removeClass("on");})
})
</script>
</head>
<body>
<p> Text na schování. </p>
<button id="tlacitko">schovej/zobraz</button>
</body>
</html>
Metoda each – spustí funkci pro všechny prvky nějakého elementu
příklad: vypíše text podle kteréhokoliv vybraného elementu z výběrového nástroje:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<script src="jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function(){
$("select").change(function(){
var str = "";
$("select option:selected").each(function(index, element){
str += $(this).text() + " ";
});
$("#vyber").text(str);
});
})
</script>
</head>
<body>
<select name="sweets" multiple="multiple">
<option>čokoláda</option>
<option>marcipán</option>
<option>žužu</option>
</select>
<p id="vyber"></p>
</body>
</html>