Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I create an empty HTML anchor so the page doesn't "jump up" when I click it?

I'm working on some JQuery to hide/show some content when I click a link. I can create something like:

<a href="#" onclick="jquery_stuff" /> 

But if I click that link while I'm scrolled down on a page, it will jump back up to the top of the page.

If I do something like:

<a href="" onclick="jquery_stuff" /> 

The page will reload, which rids the page of all the changes that javascript has made.

Something like this:

<a onclick="jquery_stuff" /> 

Will give me the desired effect, but it no longer shows up as a link. Is there some way to specify an empty anchor so I can assign a javascript handler to the onclick event, without changing anything on the page or moving the scrollbar?

like image 331
Alex Fort Avatar asked Jan 29 '09 20:01

Alex Fort


People also ask

How do you make an anchor clickable?

In order to enable a HTML Anchor Link (HyperLink), the value of its REL attribute is copied back to the HREF attribute and the REL attribute is removed. This makes the HTML Anchor Link (HyperLink) once again enabled i.e. clickable.

How do you make an anchor tag refer to nothing?

To make an anchor tag refer to nothing, use “javascript: void(0)”. The following link does nothing because the expression "0" has no effect in JavaScript. Here the expression "0" is evaluated, but it is not loaded back into the current document.


2 Answers

Put a "return false;" on the second option:

<a href="" onclick="jquery_stuff; return false;" /> 
like image 58
Otávio Décio Avatar answered Oct 29 '22 01:10

Otávio Décio


You need to return false; after the jquery_stuff:

<a href="no-javascript.html" onclick="jquery_stuff(); return false;" /> 

This will cancel the default action.

like image 40
Greg Avatar answered Oct 29 '22 01:10

Greg