Using jQuery's animate(), if the clicked on element is “<a href=”#“ …> </a>”, the function should still return false?

StackOverflow https://stackoverflow.com/questions/3042036

Question

I was reading jQuery's page for animate()

http://api.jquery.com/animate/

Its examples don't mention about if using

<a href="#" id="clickme">click me</a>
...

$('#clickme').click(function() {
    $('#someDiv').animate({left: "+=60"});
})

we actually still have to return false like in the old days?

$('#clickme').click(function() {
    $('#someDiv').animate({left: "+=60"});
    return false;
})

(but then, those examples didn't use a <a> for the "click me"... but used something else.

Otherwise the page will jump back to the beginning of the page? Does jQuery have a more elegant or magical way of doing it?

Was it helpful?

Solution

You need to use event.preventDefault():

$('...').click(function(event) {
    event.preventDefault();
    // Code.
});

From the jQuery Website:

event.preventDefault()
Description: If this method is called, the default action of the event will not be triggered.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top