![]() |
Jag har en länk som jag endast använder för att trigga en javascriptfunktion vid onmouseover. Ingenting skall hända när man klickar på länken.
Vad skall jag sätta href till att vara? Sätter jag den till href="#" så hamnar jag alltid överst på sidan. Sätter jag den till href="javascript:void(0)" så händer det absolut ingenting. Är void(0) det bästa sättet att göra "ingenting", och vad innebär egentligen void(0)? |
Det bästa är väl att inte använda en anchor-tag, utan använda div/span och lägga onclick-event på den. Med CSS kan du göra så att man får en pekar-hand när man hovrar elementet. Tänk på att det är snyggast att tilldela eventet med javascript, och inte <div onclick="">. Dvs, sätt id på elementet, hämta det med getElementById() och tilldela onclick-event-handlern.
viod(0) betyder i stort sett bara att "inget ska hända". Läs mer här annars: http://www.tizag.com/javascriptT/javascriptvoid.php |
Tack för tipset!
Jag skulle gärna vilja tilldela eventet med javascript, som du föreslår - men har problem att göra det då jag inte vill ge varje "länk" ett eget id utan endast en klass. Men det kanske går att lösa på något annat sätt? Kolla på den här koden så förstår du vad jag menar. Jag vill kunna klicka på valfri rubrik (class="rubrik") och dölja underliggande lista. <ul> <li class="rubrik">rubrik 1 <ul> [*]Inställningar [*]Hjälp [/list]<li class="rubrik">rubrik 2 <ul> [*]Logga in [*]Kontoinformation [*]Diverse[/list][/list] Har du något tips på hur jag kan göra detta? |
Du menar att ifall man klickar på t.ex. "Hjälp", så ska rubrik 1, Inställningar och Hjälp döljas? Eller menar du att man ska trycka på "rubrik 1" för att bara dölja listan under?
|
Klickar man på "rubrik 1" så skall listan under (inställningar, hjälp) döljas.
Jag skulle kunna ge id till både rubrik 1 och den underlinggande <ul>, men då skulle jag behöva en särskild funktion till respektive rubrik. Det måste finnas något enklare sätt där man kan generellt kan koda om klick på class="rubrik" så skall den underliggande <ul> döljas Ps. Jag lyckades få rubriken att likna en länk så här .rubrik { color: #36c; text-decoration: underline; cursor: pointer; } |
Något i den här stilen? :)
Kod:
<html> |
Stort tack!!! Elegant!
|
Vill man slippa rubrikclassen kan man i stället söka efter LI:s som har en UL som firstChild.
|
Mjo, men Firefox (och andra webbläsare) har ju en tendens att även göra whitespace till children i DOM-trädet, så isåfall måste man vara säker att det inte finns någon mellanrum mellan li:n och ul:n, vilket inte är en helt bra lösning.
|
Citat:
Kod:
function cleanWhitespace( element ) { |
Upptäckte den här tråden idag. Normalt sett bör man använda sig av
Min länk Det finns flera fördelar med detta. Istället för # kan man använda en länk som är en javascript-fri backup om användaren har stängt av javascript. Funktionen doSomething() bör alltid returnera false vilket innebär att ett klick på länken inte följs. Om man använder javascript som kanske inte stöds av alla webbläsare kan man i doSomething() testa detta. Stöds inte den aktuella webbläsaren så kan man returnera true och då följs länken som en vanlig länk istället. Sedan kan man också använda sig av ovan method som deSoto beskriver. Jag skulle dock göra det lite elegantare genom "behaviour"-tekniken som beskrivs på http://www.dotvoid.com/view.php?id=56. |
Håller med om det du skriver, men kanske inte i detta fallet eftersom det bara handlar om att visa gömda lager, och då bör man inte använda en anchor-tag. I detta fallet bör man från början ha alla lager framme, och i onload gömma dem, och då även lägga cursor:pointer på rubrikerna.
På så sätt märker inte den som har javascript avslaget något, och den som har javascript på får all javascript-funktionalitet ändå. EDIT: Liten brasklapp, handlar det om väldigt många lager så är det bra att köra med anchor-tag, eftersom det är lite taskigt att göra så att de utan javascript måste scrolla igenom metervis med lager. |
Citat:
|
Citat:
|
kass på javascript... o det verkar som DeSoto e nordisk mästare... så jag ställer frågan:
om jag vill att i detta fallet underlänkarna ska vara dolda från START med hjälp av javascript och inte CSS hur skriver jag då? I mitt eget fall... hur gör jag om jag vill att: <div id="hej> </div> ska vara dolt från start med ett javascript? Om man tar det i seo syfte... det verkar ju som sökmotorer inte fattar javascript.. men dom fattar css??? då kan man ju *lura* dom på detta sättet? |
<body onload="document.getElementById('hej').style.displ ay='none'">
Det kan dock hända att divver "blippar till" eftersom du inte kan gömma den innan du vet att den finns där (sidan har laddats) Sökmotorerna blir nog klokare och klokare vad det gäller upptäcka att man "fuskar bort" text med css eller js på sidan skulle jag tro… Edit: lite trist om detta bara skulle missbrukas, det finns bra skäl att använda ovan t ex <div id="hej">Du har tyvärr inte javaskript påslaget eller … så därför fungerar vissa inte funktioner på …</div> |
Ni kanske kan starta en egen tråd?
|
För att slippa "blippandet" av att ett element syns när man gömmer det i window.onload, så kan man i head köra:
document.write( '<style type="text/css"> #mitt-element { display: none; } </style>' ); På så sätt skriver Javascript ut CSS-regeln innan DOM-trädet är laddat, vilket gör att elementet döljs innan det hinner "blippa" till. |
Citat:
Citat:
Citat:
|
Alla tider är GMT +2. Klockan är nu 10:49. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson