jQuery - toggle problem
 
Lucifix 12. mar 2012 14:02:20 Pridružen od:
14. okt 2008
744 objav
438 12 0
#1

Na strani želim vstaviti skriti element (display: none), ki se pokaže, ko grem z miško nanj (hover).



Problem pri jQuery-u se pojavi, če je ob nalaganju strani miška že postavljena na element (#next-url). Potem se element pokaže, ko grem z miško stran, namesto, da bi ostal skrit.


<script type="text/javascript">
$(document).ready(function(){
$("#next-url").hover(function(){
$(this).toggle();
});
});
</script>

<div id="next-url" style="display: none;">
Vsebina
</div>

Ima kdo rešitev kako bi rešil to težavo?


všeč(0) ni všeč(0) spam(0)
 
SlimDeluxe 12. mar 2012 14:08:51 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#2

Mislim da je najlažje, če narediš en css class:

.hidden { display: none; }

potem pa z toggleclass dosežeš željeno


všeč(1) ni všeč(0) spam(0)
Freelance Web Developer
 
Lucifix 12. mar 2012 14:12:37 Pridružen od:
14. okt 2008
744 objav
438 12 0
#3

Aha... sem mislil, da se da vseeno uporabiti toggle s kakšnim malih trikom, ampak če ne najdem druge rešitve bom uporabil tvojo.



Hvala za nasvet!


všeč(0) ni všeč(0) spam(0)
 
Lucifix 12. mar 2012 14:42:54 Pridružen od:
14. okt 2008
744 objav
438 12 0
#4

Vidim, da si nekaj spreminjal, ko sem že pisal odgovor.



Tudi z toggleClass je zadeva enaka. Ko greš z miško stran od elementa, se class hidden skrije/izbriše in div se pokaže.


všeč(0) ni všeč(0) spam(0)
 
mrask 12. mar 2012 14:44:27 Pridružen od:
7. nov 2007
52 objav
27 4 0
#5

Hey,



načeloma jquery deluje, vendar imaš pri nalaganju strani div nastaljen na display:none. In nad elementom ki ni viden, hover funkcija ne more delovati. Če style="display:none;" nastaviš na display block, bo pa stvar delovala.



lp


všeč(0) ni všeč(0) spam(0)
 
Lucifix 12. mar 2012 14:49:15 Pridružen od:
14. okt 2008
744 objav
438 12 0
#6

Opa res moja napaka! Takole bi moralo biti prav - hvala za opozorilo.


<script type="text/javascript">
$(document).ready(function(){
$("#next-url").hover(function(){
$("#next-image").toggle();
});
});
</script>
<div id="next-url">
<div id="next-image" style="display: none">Vsebina</div>
</div>
všeč(0) ni všeč(0) spam(0)
 
Lucifix 12. mar 2012 15:06:14 Pridružen od:
14. okt 2008
744 objav
438 12 0
#7

Sem našel primernejšo rešitev kot je toggle:


<script type="text/javascript">
$(document).ready(function(){

$("#next-url").mouseover(function(){
$("#next-image").show();
});
$("#next-url").mouseleave(function(){
$("#next-image").hide();
});
});
</script>
všeč(0) ni všeč(0) spam(0)
 
Lucifix 12. mar 2012 19:58:39 Pridružen od:
14. okt 2008
744 objav
438 12 0
#8

Mogoče kdo ve zakaj jQuery ne zazna premika miške po elementu, če se le ta že nahaja ob sami osvežitvi strani? Probal tudi z mouseenter ampak zadeva je ista.



Primer se nahaja na moji strani:

http://www.slo-foto.net/galerija_slika-95894.html&filter=super



Z miško greš ne desno stran slike in klikneš in pri tem miške ne premakneš iz elementa za naslednjo fotografijo. jQuery z mouseover/mouseenter ne zazna, da bi bilo polje aktivno zato se tudi ne sproži zgornji ukaz - prikaz #next-image. Če pa z miško zapustiš in se ponovno vrneš na polje, pa se seveda prikaže.



Se komu kaj sanja kako bi aktiviral sekundarni element, če ne zapustiš primernega (#next-url)?


všeč(0) ni všeč(0) spam(0)
 
komac 12. mar 2012 20:13:20 Pridružen od:
14. avg 2009
733 objav
673 29 7
#9

kaj pa .hover()?


všeč(0) ni všeč(0) spam(0)
 
Lucifix 12. mar 2012 20:26:32 Pridružen od:
14. okt 2008
744 objav
438 12 0
#10

Ne tudi hover mi ni deloval.



S podobno težavo se je že nekdo drug srečal, vendar brez pravega odgovora:

http://stackoverflow.com/questions/5169342/jquery-remove-hover-on-initial-page-load-if-mouse-is-over-element



Probal sem še s tem pluginom, pa ni pomagalo:

http://cherne.net/brian/resources/jquery.hoverIntent.html


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se