Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery disable a link

Anyone know how to disable a link in jquery WITHOUT using return false;?

Specifically, what I'm trying to do is disable the link of an item, performing a click on it using jquery which triggers some stuff, then re-enabling that link so that if it's clicked again it works as default.

Thanks. Dave

UPDATE Here's the code. What it needs to do after the .expanded class has been applied is to re-enable the disabled link.

$('ul li').click(function(e) {     e.preventDefault();     $('ul').addClass('expanded');     $('ul.expanded').fadeIn(300);     //return false; }); 
like image 775
davebowker Avatar asked Jun 09 '09 14:06

davebowker


People also ask

How do I make a link inactive?

Disable a link #remove the href attribute so that it can no longer receive the focus. add a role="link" so that it is always considered a link by screen readers. add an attribute aria-disabled="true" so that it is indicated as being disabled.

How do I remove a href from a tag?

Right-click the hyperlink text, and then click Remove Hyperlink.


1 Answers

$('#myLink').click(function(e) {     e.preventDefault();     //do other stuff when a click happens }); 

That will prevent the default behaviour of a hyperlink, which is to visit the specified href.

From the jQuery tutorial:

For click and most other events, you can prevent the default behaviour - here, following the link to jquery.com - by calling event.preventDefault() in the event handler

If you want to preventDefault() only if a certain condition is fulfilled (something is hidden for instance), you could test the visibility of your ul with the class expanded. If it is visible (i.e. not hidden) the link should fire as normal, as the if statement will not be entered, and thus the default behaviour will not be prevented:

$('ul li').click(function(e) {     if($('ul.expanded').is(':hidden')) {         e.preventDefault();         $('ul').addClass('expanded');         $('ul.expanded').fadeIn(300);     }  }); 
like image 175
karim79 Avatar answered Oct 06 '22 00:10

karim79