Kas nors žino, kaip išjungti nuorodą jquery NENAUDOJANT return false;
?
Konkrečiai, ką aš bandau padaryti, tai išjungti elemento nuorodą, spustelėti ant jos naudojant jquery, kuris sukelia tam tikrus dalykus, tada vėl įjungti tą nuorodą, kad jei ji vėl būtų spustelėta, ji veiktų pagal nutylėjimą.
Ačiū. Dave
PAKEITIMAS
Štai kodas. Tai, ką jis turi padaryti pritaikius .expanded
klasę, yra iš naujo įjungti išjungtą nuorodą.
$('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
});
Tai užkirs kelią numatytajam hipersaito elgesiui, t. y. apsilankymui nurodytame href.
Iš "jQuery" vadovėlio:
Spustelėjimui ir daugumai kitų įvykių galite užkirsti kelią numatytajam elgesiui - čia, sekdami nuorodą į jquery.com
- iškvietę event.preventDefault() įvykio tvarkyklėje
Jei norite preventDefault()
tik tada, kai tenkinama tam tikra sąlyga (pavyzdžiui, kažkas paslėpta), galite patikrinti ul matomumą naudodami klasę expanded. Jei jis matomas (t. y. nėra paslėptas), nuoroda turėtų veikti įprastai, nes nebus įvestas teiginys if, taigi nebus užkirstas kelias numatytajam elgesiui:
$('ul li').click(function(e) {
if($('ul.expanded').is(':hidden')) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
}
});
Išbandykite tai:
$("a").removeAttr('href');
EDIT-
Iš jūsų atnaujinto kodo:
var location= $('#link1').attr("href");
$("#link1").removeAttr('href');
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
$("#link1").attr("href", location);