jQuery problem
-
sINN3R
Medium Star
- Príspevky: 330
- Registrovaný: 17 jún 2006, 11:21
- Bydlisko: Trencin - Slovakia - EU
- Kontaktovať používateľa:
jQuery problem
Zdravim,
Chcel by som sa spytat ci existuje v jQuery prikaz ktorym sa da zistit ci na danom objekte prebieha urcita funkcia, pretoze riesim problem kde po prejdeni nad urcitu plochu sa mi zobrazi obrazok no ked rychlo nad tou plochou prejdem 10x tak sa mi tam funkcia "mouseover" zretazi a ono mi to ako keby dobieha a stale ukazuje a schovava ten obrazok aj ked uz nad tou plochou mys nemam. Preto som rozmyslal ci nieje mozne to spravit tak aby sa nedala spustit znova ta funkcia mouseover na danom objekte predtym nez sa skonci ta aktualna.
Diky za rady
Chcel by som sa spytat ci existuje v jQuery prikaz ktorym sa da zistit ci na danom objekte prebieha urcita funkcia, pretoze riesim problem kde po prejdeni nad urcitu plochu sa mi zobrazi obrazok no ked rychlo nad tou plochou prejdem 10x tak sa mi tam funkcia "mouseover" zretazi a ono mi to ako keby dobieha a stale ukazuje a schovava ten obrazok aj ked uz nad tou plochou mys nemam. Preto som rozmyslal ci nieje mozne to spravit tak aby sa nedala spustit znova ta funkcia mouseover na danom objekte predtym nez sa skonci ta aktualna.
Diky za rady
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: jQuery problem
takéto niečo si skúšal?
Kód: Vybrať všetko
var foo = true;
.
.
.
if(foo) {
foo = !foo;
$('#Div1').slideDown('fast', function(){foo = !foo});
}
-
sINN3R
Medium Star
- Príspevky: 330
- Registrovaný: 17 jún 2006, 11:21
- Bydlisko: Trencin - Slovakia - EU
- Kontaktovať používateľa:
Re: jQuery problem
Skusil som to teraz ale moc mi to nefungovalo
ale diky za radu.
Takto vyzera ten kusok kodu co hybe na hover:
Takto vyzera ten kusok kodu co hybe na hover:
Kód: Vybrať všetko
$j(".projectList li h3 a").hover(
function () {
$j(this).animate({backgroundPosition: "-8px center"} ,0);
$j(this).animate({paddingLeft: "8px", backgroundPosition: "0px center"} ,200);
},
function () {
$j(this).animate({backgroundPosition: "-8px center", paddingLeft: "0px"} ,200);
}
);
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: jQuery problem
no veď to daj celé do podmienky ako som ti ukázal. Máš nejakú globálnu premennú, nastavenú najprv na true. Vykonávaš to celé iba ak je true, a na začiatku ju nastavíš na false, na konci na true. S jQuery moc nerobím, ja som skôr prototype a scriptaculous verný ale určite majú aj animate nejaké návratové funkcie ako slidDown a podobne. Druho možnosťou by bolo sa trochu pohrať s tými bindami čo som našiel v api ale nechcelo sa mi to celé čítať
možno by sa aj tam našlo niečo čo ti pomôže
-
sINN3R
Medium Star
- Príspevky: 330
- Registrovaný: 17 jún 2006, 11:21
- Bydlisko: Trencin - Slovakia - EU
- Kontaktovať používateľa:
Re: jQuery problem
Dal som to takto a nechapem preco sa to vykonva dalej ked tam nikde neni nastavene $hover na true asi pojdem na tie bindy na ktore som sa uz pozeral a chcel som sa im tak moc vyhnut
Kód: Vybrať všetko
if ($hover === undefined) {
var $hover = true;
}
if ($hover == true) {
$hover = false;
$j(".projectList li h3 a").hover(
function () {
$j(this).animate({backgroundPosition: "-8px center"} ,0);
$j(this).animate({paddingLeft: "8px", backgroundPosition: "0px center"} ,200);
},
function () {
$j(this).animate({backgroundPosition: "-8px center", paddingLeft: "0px"} ,2000);
}
);
}Re: jQuery problem
Keď niečo animuješ (a hlavne, ako to je to ako obsluha udalosti hover, alebo niečoho iného, čo sa môže opakovať skôr, ako sa tá animácia skončí), tak najskôr použi aj stop a teda niečo ako:
Kód: Vybrať všetko
$j(this).stop().animate({backgroundPosition: "-8px center"}, 0);-
--==[ RA ]==--
Light Professional
- Príspevky: 841
- Registrovaný: 03 mar 2006, 18:07
- Bydlisko: Kosice
- Kontaktovať používateľa:
Re: jQuery problem
Na zastavenie cinnsoti nejakeho efektu sluzi funkcia stop(); tak ako hovori chrono
Pri kazdom zaciatku efektu najprv zavolaj
a nasledne vykonaj efekt.
To sposobi ze hocico co je vykonavane na danom objekte (this) sa zastavi.
Info:
http://docs.jquery.com/Effects/stop
Pri kazdom zaciatku efektu najprv zavolaj
Kód: Vybrať všetko
$(this).stop();To sposobi ze hocico co je vykonavane na danom objekte (this) sa zastavi.
Info:
http://docs.jquery.com/Effects/stop
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
Re: jQuery problem
to ale zastaví efekt a nenechá ho dobehnúť do konca. Ja som to pochopil trošku inač, že efekt dobehne, ale nespustí sa znova (znova sa sputiť môže až keď kompletne skončil)
-
sINN3R
Medium Star
- Príspevky: 330
- Registrovaný: 17 jún 2006, 11:21
- Bydlisko: Trencin - Slovakia - EU
- Kontaktovať používateľa:
Re: jQuery problem
ja by som ale potreboval aby sa mi pocas vykonavania eventu nenabalovali dalsie hover eventy ale aby sa ignorovali do doby kym neskonci aktualny hover na danom elemente