Forum > Klientspråk > JavaScript
Jag håller på att skapa en sida som med hjälp utav jquery blind effekt ska byta mellan 3 olika divar. Jag har lyckats göra effekten men dock inte så som jag vill ha den. Det jag vill är att när man trycker på en knapp så ska den diven som är öppen stängas och den andra öppnas. Som det är nu så är alla divar öppna samtidigt vilket jag inte vill. Hur ska jag skriva för att åstadkomma detta? Är inte så hajj på jqery så jag hoppas att ni är det! :P
Detta är min kod jag använder nu, det är 2 stycken knappar, som jag istället också vill lägga ihop till en.
<a href="#" onClick="$('#text').BlindUp(500);return this;$('#text').BlindDown(500);">
Blind up</a>
<a href="#" onClick="$('#text').BlindDown(500);return false;">
Blind down</a>
Finns det ingen callback funktion för varje effekt? Typ som onFinish: osv
Jag har inte en aning.. Som Evl har gjort på sin sida vill jag ungefär åstadlkomma.. http://portfolio.its-time.se/
Han har använt sig utav denna rad när han gjort, dock använder han scriptaculous och jag använder jquery.
onclick="new Effect.BlindUp('contactDiv'); new Effect.BlindUp('projectDiv'); new Effect.BlindUp('projectsInfo'); new Effect.BlindDown('startDiv');"Går det att göra på ungefär samma sätt? Isåfall hur?
Han använder sig av scriptaculous , om du tittar på hans källkod så har han skrivit såhär bara:
<div class="menyObjectRight" id="menyObj1" onclick="new Effect.BlindUp('contactDiv'); new Effect.BlindUp('projectDiv'); new Effect.BlindUp('projectsInfo'); new Effect.BlindDown('startDiv');">Start</div>
Hehe Shadi, Det var precis det jag skrev att han gjorde;) Jag citerade även hans kod.
han gjort, dock använder han scriptaculous och jag använder jquery.
onclick="new Effect.BlindUp('contactDiv'); new Effect.BlindUp('projectDiv'); new Effect.BlindUp('projectsInfo'); new Effect.BlindDown('startDiv');"Går det att göra på ungefär samma sätt? Isåfall hur?
Jag måste ha läst åt skogen...skyller på gårdagens utekväll. Sorry.
haha;) Det är lungt
Jag har hittat på detta:
<script type="text/javascript">
$(document).ready(function(){
$("#div1").click(function(){
$("#div2").slideDown('fast');
});
$("#div1").mouseout(function(){
$("#div2").slideUp('fast');
});
$("#div3").click(function(){
$("#div4").slideDown('fast');
});
$("#div3").mouseout(function(){
$("#div4").slideUp('fast');
});
});
</script>
Denna gör nu att vid click så öppnas en div, men den stängs också vid mouseout vilket jag inte vill. Jag vill att den först stängs när nästa div öppnas om ni förstår hur jag menar?
Så om det finns tex nått istället för mouseout för att den inte ska göra någonting så skulle det kanske fungera. Eller hur ska jag göra?
Du kan göra på detta sättet.
Div1 öppnas, då stängs alla andra divar förutom Div1.
Div2 öppnas, då stängs alla andra divar förutom Div2.
Osv...
Ja det är precis så som jag vill ha:p Men hur gör jag det?
Du får skapa en Lyssnare som lyssnar på respektive menydiv.
Hur skapar jag en lyssnare? Jag förstår inte alls hur man gör och vad den är bra till.. Kan du visa med kod hur man gör?
Nu vet jag inte hur man gör i JQuery, men i prototype skriver man något i stil med
document.observe('dom:loaded', function() {
$('div').observe('click', function() {
Kod som gör något...
});
})