jQuery dezactiva un link

Oricine știe cum să dezactivați un link în jquery FĂRĂ a utiliza return false;?

În mod special, ceea ce am'm încercat să fac este de a dezactiva link-ul unui articol, se efectuează un clic pe ea folosind jquery care declanșează unele lucruri, apoi re-activarea că link-ul astfel încât, dacă-l's apasat din nou funcționează ca implicit.

Multumesc. Dave

UPDATE Aici's cod. Ceea ce trebuie să facă după .extins de clasă a fost aplicat este de a re-activa link-ul dezactivat.

$('ul li').click(function(e) {
    e.preventDefault();
    $('ul').addClass('expanded');
    $('ul.expanded').fadeIn(300);
    //return false;
});
Comentarii la întrebare (7)
Soluția
$('#myLink').click(function(e) {
    e.preventDefault();
    //do other stuff when a click happens
});

Care va preveni comportamentul implicit de un hyperlink, care este de a vizita specificate href.

De jQuery tutorial:

Pentru a faceți clic și cele mai multe alte evenimente, poate preveni comportamentul implicit - aici, urmând link-ul de la jquery.com

  • prin apelarea eveniment.preventDefault() în cazul handler

Dacă vrei să preventDefault() numai dacă o anumită condiție este îndeplinită (ceva ce este ascuns, de exemplu), ai putea testa vizibilitatea ul cu clasa de extins. Dacă acesta este vizibil (de exemplu, nu ascuns) link-ul ar trebui să foc, ca de obicei, ca în cazul în care declarația nu va fi intrat, și, astfel, comportamentul implicit nu vor fi prevenit:

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

Încercați acest lucru:

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

EDIT

Din codul actualizat:

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

Pentru alții care au venit aici prin intermediul google ca mi - aici's o altă abordare:

css:
.disabled {
  color: grey; // ...whatever
}

jQuery:
$('#myLink').click(function (e) {
  e.preventDefault();
  if ($(this).hasClass('disabled'))
    return false; // Do something else in here if required
  else
    window.location.href = $(this).attr('href');
});

// Elsewhere in your code
if (disabledCondition == true)
  $('#myLink').addClass('disabled')
else
  $('#myLink').removeClass('disabled')

Amintiți-vă: nu numai că aceasta este o clasă css

class="buttonstyle"

dar, de asemenea, aceste două

class="buttonstyle cu handicap"

astfel încât să puteți adăuga cu ușurință și elimina alte clase cu jQuery. Nu este nevoie să atingeți href...

Îmi place jQuery! ;-)

Comentarii (5)

Aici este o alternativă css/jQuery soluție pe care am prefera pentru concizie și minimizat scripting:

css:

a.disabled {
  opacity: 0.5;
  pointer-events: none;
  cursor: default;
}

jQuery:

$('.disableAfterClick').click(function (e) {
   $(this).addClass('disabled');
});
Comentarii (4)

Puteți elimina click pentru link-ul de următoarele;

$('#link-id').unbind('click');

Puteți re-activați link-ul de următoarele,

$('#link-id').bind('click');

Nu puteți utiliza 'cu handicap' proprietate pentru link-uri.

Comentarii (2)

Dacă te duci href traseu, puteți să-l salvați

Pentru a dezactiva:

$('a').each(function(){
    $(this).data("href", $(this).attr("href")).removeAttr("href");
});

Apoi re-permite utilizarea:

$('a').each(function(){
    $(this).attr("href", $(this).data("href"));
});

Într-un caz am avut de a face în acest fel pentru că faceți clic pe evenimente au fost deja legat în altă parte și nu am avut nici un control asupra ei.

Comentarii (0)

Eu folosesc întotdeauna acest lucru în jQuery pentru dezactivarea link-uri

$("form a").attr("disabled", "disabled");
Comentarii (0)

html link-ul de exemplu:


        <a class="btn btn-primary" id="BT_Download" target="blank" href="DownloadDoc?Id=32">

        Download Document
        </a>

utilizați această în jQuery

    $('#BT_Download').attr('disabled',true);

adăugați acest la css :

    a[disabled="disabled"] {
        pointer-events: none;
    }
Comentarii (2)

Fav meu în "checkout pentru a edita un element și pentru a preveni -wild wild west clicuri oriunde - în timp ce într-o casă" funcții

$('a').click(function(e) {
    var = $(this).attr('disabled');
    if (var === 'disabled') {
        e.preventDefault();
    }
});

Deci, dacă vreau ca toate link-uri externe într-o a doua acțiune toolbar ar trebui să fie dezactivat în timp ce în "edit-mode" așa cum este descris mai sus, am'll a adăuga în funcția de editare

$('#actionToolbar .external').attr('disabled', true);

Link-ul de exemplu după incendiu:

<a href="http://goo.gl" target="elsewhere" class="external" disabled="disabled">Google</a>

Și acum PUTEȚI folosi cu handicap proprietate pentru link-uri

Noroc!

Comentarii (0)

Ar trebui să găsim răspuns aici.

Multumesc @Va și @Matt pentru această soluție elegantă.

jQuery('#path .to .your a').each(function(){
    var $t = jQuery(this);
    $t.after($t.text());
    $t.remove();
});
Comentarii (0)

puteți ascunde și afișa link-ul ca iti place

$(link).hide();
$(link).show();
Comentarii (0)

Doar declanșare lucruri, setați pavilion, return false. Dacă flag este setat - nu face nimic.

Comentarii (1)

unbind() s-a depreciat în jQuery 3, folosipe () metoda în loc:

$("a").off("click");
Comentarii (0)

Aceasta funcționează și pentru link-uri care au atributul onclick set inline. Acest lucru, de asemenea, vă permite să îndepărtați mai târziu "return false" în scopul de a permite.

        //disable all links matching class
        $('.yourLinkClass').each(function(index) {
            var link = $(this);
            var OnClickValue = link.attr("onclick");
            link.attr("onclick", "return false; " + OnClickValue);
        });

        //enable all edit links
        $('.yourLinkClass').each(function (index) {
            var link = $(this);
            var OnClickValue = link.attr("onclick");
            link.attr("onclick", OnClickValue.replace("return false; ", ""));
        });
Comentarii (0)

Știu că nu e't cu jQuery dar puteți dezactiva un link cu un simplu css:

a[disabled] {
  z-index: -1;
}

HTML va arata ca

<a disabled="disabled" href="/start">Take Survey</a>
Comentarii (0)

Doar folosi $("o").prop("cu handicap", true);. Acest lucru va dezactiva de element de legătură. Trebuie să fie prop("cu handicap", true). Don't folosi attr("cu handicap", true)`

Comentarii (0)