Noen som vet hvordan du deaktiverer en lenke i jquery UTEN å bruke return false;
?
Spesifikt, det jeg prøver å gjøre er å deaktivere lenken til et element, utføre et klikk på det ved hjelp av jquery som utløser noen ting, og deretter aktivere den lenken på nytt slik at hvis den klikkes igjen, fungerer den som standard.
Takk for hjelpen. Dave
OPPDATERING
Her er koden. Det den trenger å gjøre etter at .expanded
-klassen er brukt, er å aktivere den deaktiverte lenken på nytt.
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
$('#myLink').click(function(e) {
e.preventDefault();
//do other stuff when a click happens
});
Det vil forhindre standardoppførselen til en hyperlenke, som er å besøke den angitte href.
Fra jQuery veiledning:
For klikk og de fleste andre hendelser kan du kan forhindre standardoppførselen - her, ved å følge lenken til jquery.com
- ved å kalle event.preventDefault() i hendelsesbehandleren
Hvis du vil preventDefault()
bare hvis en viss betingelse er oppfylt (for eksempel at noe er skjult), kan du teste synligheten til din ul med klassen expanded. Hvis den er synlig (dvs. ikke skjult), bør lenken utløses som normalt, ettersom if-setningen ikke vil bli angitt, og dermed vil ikke standardoppførselen forhindres:
$('ul li').click(function(e) {
if($('ul.expanded').is(':hidden')) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
}
});
Prøv dette:
$("a").removeAttr('href');
EDIT-
Fra din oppdaterte kode:
var location= $('#link1').attr("href");
$("#link1").removeAttr('href');
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
$("#link1").attr("href", location);