jQuery onemogoči povezavo

Ali kdo ve, kako onemogočiti povezavo v jquery brez uporabe return false;?

Natančneje, kar poskušam narediti, je onemogočiti povezavo elementa, opraviti klik nanjo s pomočjo jqueryja, ki sproži nekaj stvari, nato pa ponovno omogočiti to povezavo, tako da ob ponovnem kliku deluje kot privzeto.

Hvala. Dave

DOPOLNITEV Tukaj je koda. Po uporabi razreda .expanded mora ponovno omogočiti onemogočeno povezavo.

$('ul li').click(function(e) {
    e.preventDefault();
    $('ul').addClass('expanded');
    $('ul.expanded').fadeIn(300);
    //return false;
});
Rešitev
$('#myLink').click(function(e) {
    e.preventDefault();
    //do other stuff when a click happens
});

To bo preprečilo privzeto obnašanje hiperpovezave, ki je obisk določenega href.

Iz jQuery tutorial:

Za klik in večino drugih dogodkov lahko

lahko preprečite privzeto obnašanje - tukaj, po povezavi na jquery.com

  • s klicem event.preventDefault() v izvajalcu dogodka

Če želite preventDefault() le, če je izpolnjen določen pogoj (nekaj je na primer skrito), lahko vidnost ul preverite z razredom expanded. Če je viden (tj. ni skrit), se mora povezava sprožiti kot običajno, saj izjava if ne bo vnesena in tako ne bo preprečeno privzeto obnašanje:

$('ul li').click(function(e) {
    if($('ul.expanded').is(':hidden')) {
        e.preventDefault();
        $('ul').addClass('expanded');
        $('ul.expanded').fadeIn(300);
    } 
});
Komentarji (4)

Poskusite to:

$("a").removeAttr('href');

EDIT-

Iz vaše posodobljene kode:

 var location= $('#link1').attr("href");
 $("#link1").removeAttr('href');
 $('ul').addClass('expanded');
 $('ul.expanded').fadeIn(300);
 $("#link1").attr("href", location);
Komentarji (2)

Samo sprožite stvari, nastavite neko zastavico in vrnite false. Če je zastavica nastavljena - ne stori ničesar.

Komentarji (1)