Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Javascript] Pagina springt omhoog bij javascript link

Pagina: 1
Acties:
  • 121 views sinds 30-01-2008
  • Reageer

  • Niakmo
  • Registratie: Juni 2001
  • Laatst online: 10-02-2024
Ik heb de volgende link

HTML:
1
<a class="button" href="#" id="searchButton" onClick="searchCustomers(); return false;">Zoeken</a>


Nu zou de "return false;" de default actie van de link die naar een lege anchor wijst moeten cancellen. Alleen nu gebeurt dit niet en spring in Firefox de pagina omhoog.

Daarnaast heb ik ook de inde searchCustomers() functie op het einde een return false;. Daar boven op heb ik het volgende nog geprobeerd:


(ik maak gebruik van prototype.js)
JavaScript:
1
2
3
4
5
6
7
8
9
window.onload = function()
{
    $('searchButton').addEvent('click', function(e)
                                {
                                    e = new Event(e).stop();
                                    searchCustomers();
                                });
    
}


Kan ik er toch voor zorgen dat de pagina niet omhoog springt?

  • Xelle
  • Registratie: Mei 2006
  • Laatst online: 08:57
Edit: sorry niet gezien!

[ Voor 86% gewijzigd door Xelle op 13-12-2007 14:56 ]


  • Swaptor
  • Registratie: Mei 2003
  • Laatst online: 15-10 19:25

Swaptor

Java Apprentice

@Helle: Dat wordt zoals TS al aangeeft gecancelled doordat er een "return:false;" wordt gegeven na de functie in de onClick.

Welke versie van Fx heb je?

[ Voor 14% gewijzigd door Swaptor op 13-12-2007 14:55 ]

Ontdek mij!
Proud NGS member
Stats-mod & forum-dude


  • Niakmo
  • Registratie: Juni 2001
  • Laatst online: 10-02-2024
Dat klopt, maar door het toevoegen van de return false, annuleer je deze actie. Iig dat zou de bedoeling moeten zijn, helaas negeert FF dit.

edit:


ik gebruik Firefox/2.0.0.11 onder mac os x 10.5

[ Voor 18% gewijzigd door Niakmo op 13-12-2007 14:56 ]


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 09:41

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
2
3
<a href="#" onclick="return searchCustomers();"> 
of
<a href="javascript:return searchCustomers();">

zou het waarschijnlijk wel goed moeten doen

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Je wil natuurlijk eigenlijk die href="" laten verwijzen naar een alternatieve javascript-loze manier om customers te zoeken, maar da's een beetje off topic. ;)

  • Niakmo
  • Registratie: Juni 2001
  • Laatst online: 10-02-2024
RM-rf schreef op donderdag 13 december 2007 @ 14:57:
code:
1
2
3
<a href="#" onclick="return searchCustomers();"> 
of
<a href="javascript:return searchCustomers();">

zou het waarschijnlijk wel goed moeten doen
Beide dingen werken niet, ik heb het net ook even in Safari en Camino getest, beide zelfde probleem, kan het nu helaas niet in IE testen.

Ik heb ondertussen bijna alle oplossingen geprobeerd die ik op google kon vinden maar geen een die werkt. Zou der iets kunnen zijn in prototype.js of andere js code die het onmogelijk maakt deze code te gebruiken?

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 09:41

RM-rf

1 2 3 4 5 7 6 8 9

zit er dan niet een fout in searchCustomers() of retourneert die niet eerder wel een true?

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Keess
  • Registratie: Augustus 2006
  • Laatst online: 27-11 08:21
<a href="javascript:void(0)" onclick="searchCustomers();">

:?

  • Cartman!
  • Registratie: April 2000
  • Niet online
Zit er niet gewoon een fout in de searchCustomers functie? Als dat zo is dan worden verdere dingen ook genegeerd en volgt ie gewoon je link.

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Waarschijnlijk is je oplossing e.preventDefault().

Wanneer je een event aan een <a> hangt, zoiets als
HTML:
1
<a href'#' onclick='return bla(event)'>link</a>


Moet je functie er zo uit komen te zien:
JavaScript:
1
2
3
4
5
function bla(e) {
  if ( !e ) e = window.event; // for IE
  if  ( e.preventDefault ) e.preventDefault();
  return false;
}


Volgens mij zou zoiets moeten werken. Alleen attach ik altijd events middels JavaScript, en niet inline in de HTML zelf ... dus ik weet niet zeker of het meegeven van het event op aangegeven manier werkt. Zoek in dat geval via Google even op preventDefault ... misschien dat dat wat oplevert.

  • Niakmo
  • Registratie: Juni 2001
  • Laatst online: 10-02-2024
Mijn javascript console van firefox geeft geen fout en de searchCustomers() word gewoon uitgevoerd. Dus daar kan het niet aan liggen.

edit:
Ik heb het gevonden, omdat de zoekResultaten via Ajax ingeladen worden word er een divje geupdate die dus van hoogte x naar 0 gaat en weer terug naar x waardoor het scherm iets verspringt, ook als x hetzelfde blijft, ik gok dat ik hier niks aan kan doen of is er een manier om de positie van af de top op te vragen en hier heen te scrollen?

[ Voor 56% gewijzigd door Niakmo op 13-12-2007 17:12 ]

Pagina: 1