Tag href dinonaktifkan

266

Meskipun tautan itu dinonaktifkan, tetap dapat diklik.

<a href="/" disabled="disabled">123n</a>

Bisakah saya membuatnya tidak dapat diklik jika dinonaktifkan? Haruskah saya menggunakan JavaScript?

Alan Coromano
sumber
Hanya untuk klarifikasi: Saya menduga maksud Anda adalah Anda telah menonaktifkan tautannya tetapi acara "klik" masih menyala?
Levi Hackwith
2
Anda dapat menggunakan pointer-events: none; dalam css
ppsreejith
3
Anda dapat menggunakan preventDefault (); stackoverflow.com/questions/1357118/…
Ciack404
Tetapi mengapa tidak menghapus atribut href saja?
MrBoJangles

Jawaban:

234

Tidak ada atribut yang dinonaktifkan untuk hyperlink. Jika Anda tidak ingin sesuatu untuk ditautkan maka Anda harus menghapus <a>tag sama sekali, atau menghapus hrefatributnya.

John Conde
sumber
13
Ini berfungsi, tapi saya akan menganggapnya sebagai UX yang buruk jika Anda membiarkan CSS yang ada di sana. Pengguna akan mengkliknya dan berpikir ada sesuatu yang rusak. Anda tidak boleh membiarkan pengguna menjadi bingung tentang apa yang terjadi.
agm1984
Hanya menambahkan kursor: tidak ada; ke tautan yang relevan tampaknya mencapai sebanyak kursor: tidak ada; pointer-events: tidak ada; . . . . Bagaimanapun itu memungkinkan saya mengubah halaman di situs aplikasi satu halaman untuk saya.
Trunk
2
Tautan akan tetap fokus dan "dapat diklik" (menggunakan Enter) menggunakan navigasi keyboard bahkan jika Anda menggunakan kursor CSS atau peristiwa-pointer, yang mungkin buruk jika Anda mencoba untuk menonaktifkan sesuatu Entah menghapus atribut href atau mengubahnya menjadi span
Tom Golden
3
Anda juga dapat menambahkan onclick="return false;"ke tag jangkar dan mungkin menambahkan titleatribut yang menjelaskan bahwa tautan tersebut tidak valid.
Craig London
1
Juga, saya percaya hanya membersihkan hrefdan meninggalkan <a>tidak akan sesuai ADA.
SlothFriend
353

Dengan bantuan css Anda akan menonaktifkan hyperlink. Coba di bawah ini

a.disabled {
  pointer-events: none;
  cursor: default;
}
<a href="link.html" class="disabled">Link</a>

Lakhan
sumber
4
Harap dicatat bahwa ini hanya berfungsi di Internet Explorer 11+
Patrick Hillert
31
Ketika fokus pada tag tautan dengan tombol tab dan tekan Enter properti ini tidak berfungsi.
Majid Basirati
2
Seharusnya hanya menjadi jawabannya jika Anda tidak peduli tentang IE9-10
Ringo
1
Ini juga menonaktifkan acara melayang, yang berarti penataan kursor tidak berfungsi. (<span> & # x20E0; </span> <- semua ini tidak ada di tautan Anda yang dinonaktifkan.)
Seth Battin
2
juga menggunakan opacity untuk membedakan antara tautan aktif dan dinonaktifkan. opacity: 0.5;
Aamer Shahzad
84

Kamu bisa memakai:

<a href="/" onclick="return false;">123n</a>
CodeLikeBeaker
sumber
2
tidak akan berfungsi jika sudah ada fungsi sebagai penangan untuk acara klik
rahul shukla
70

Anda dapat menggunakan salah satu solusi ini:

HTML

<a>link</a>

JavaScript

<a href="javascript:function() { return false; }">link</a>
<a href="/" onclick="return false;">link</a>

CSS

<a href="www.page.com" disabled="disabled">link</a>

<style type="text/css">
    a[disabled="disabled"] {
        pointer-events: none;
    }
</style>

IgniteCoders
sumber
32

Coba ini:

<a href="javascript:void(0)" style="cursor: default;">123n</a>

sumber
Benar, saya selalu menggunakan href = "javascript: void (0)"
Jan Hamara
Ini juga sentuhan yang bagus, jika Anda masih ingin mempertahankan fungsi klik kanan seperti "salin tautan"
Pengembang SPM
18

The <a>tag tidak memiliki disabledatribut, itu hanya untuk <input>s (dan <select>s dan<textarea> s).

Untuk "menonaktifkan" tautan, Anda dapat menghapus hrefatributnya, atau menambahkan penangan klik yang mengembalikan false.

Roket Hazmat
sumber
@rocket Apakah ada implikasi menghapus atribut href? Maksudku, itu seharusnya merupakan atribut wajib. Bukan hal semacam itu yang tampaknya menjadi masalah saat ini.
Ringo
@Ringo: Menghapus hrefkursor dapat membuat kursor tidak berubah ketika Anda mengarahkan kursor ke atasnya.
Rocket Hazmat
11

Anda perlu menghapus <a>tag untuk menyingkirkan ini.

atau coba gunakan: -

  <a href="/" onclick="return false;">123n</a>
Rahul Tripathi
sumber
10

HTML:

<a href="/" class="btn-disabled" disabled="disabled">123n</a>

CSS:

.btn-disabled,
.btn-disabled[disabled] {
  opacity: .4;
  cursor: default !important;
  pointer-events: none;
}
Syed
sumber
10

Tips 1: Menggunakan CSS pointer-events: none;

Tips 2: Menggunakan JavaScript javascript:void(0) (Ini adalah praktik terbaik)

<a href="javascript:void(0)"></a>

Tips 1: Menggunakan Jquery $('selector').attr("disabled","disabled");

venkatskpi
sumber
9

Hanya CSS: ini menghapus tautan dari href.

.disable { 
    pointer-events: none; 
    cursor: default; 
}
Joel Adams
sumber
5

Membiarkan orang tua memiliki pointer-events: noneakan menonaktifkan anak a-tagseperti ini (mengharuskan div mencakup a dan belum 0 lebar / tinggi):

<div class="disabled">
   <a href="/"></a>
</div>

dimana:

.disabled {
    pointer-events: none;
}
Ferus
sumber
Anda juga dapat menerapkan gaya "pointer-events: none" secara langsung ke tag <a>, misalnya dengan menambahkan kelas .disabled dengan javascript saat Anda ingin menonaktifkannya. Pembungkus <div> tidak diperlukan.
Les Nightingill
Bungkus tidak diperlukan seperti yang diperlihatkan di sini: https://jsfiddle.net/d1owm1d0/1/ untuk chrome, firefox, dan safari. Apakah Anda menggunakan browser lain di mana demo saya gagal?
Les Nightingill
@LesNightingill Jika a-tag membungkus sesuatu itu tidak berfungsi: jsfiddle.net/d9gwgdyf
Ferus
itu benar @Ferus. Saya tidak yakin mengapa itu benar.
Les Nightingill
4
$(document).ready(function() {
   $('a').click(function(e) {
     e.preventDefault();
  });
});
Mahmoud Farahat
sumber
1
Kode ini berfungsi pada klik kanan. Jadi, ini bukan solusi yang tepat.
Lakhan
4

Anda dapat menonaktifkan tautan menggunakan javascript saat dijalankan dengan menggunakan kode ini

$ ('. page-link'). css ("pointer-events", "none");

Chintan Mathukiya
sumber
Terlambat ke pesta, tetapi ini juga menghilangkan css kursor apa pun. Dalam kasus saya, saya menggunakan "kursor: tidak diizinkan" jika tautan dinonaktifkan.
Steve
3

Jika Anda ingin menghilangkan pointer Anda dapat melakukan ini dengan css menggunakan kursor .

ahdaniels
sumber
3

Anda dapat meniru atribut yang dinonaktifkan pada <a>tag.

<a href="link.html" disabled="">Link</a>

a[disabled] {
   pointer-events: none;
   cursor: default;
}
Blowsie
sumber
3

Dalam kasus saya, saya gunakan

<a href="/" onClick={e => e.preventDefault()}>
Chien Chieh Wang
sumber
3

Saya punya satu:

<a href="#">This is a disabled tag.</a>

Semoga ini akan membantu Anda;)


sumber
1
Hai Werenverlivitz, selamat datang. Bagus, tidak berpikir Anda akan menjadi orang pertama dengan jawaban seperti itu 7-8 tahun setelahnya!
Tiago Martins Peres 李大仁
2

Kami tidak dapat menonaktifkannya secara langsung tetapi kami dapat melakukan hal berikut

  1. tambah type="button".
  2. hapus href=""atributnya.
  3. tambahkan disabledatribut sehingga itu menunjukkan bahwa itu dinonaktifkan dengan mengubah courser dan menjadi redup.

berikut ini adalah contohnya

<?php
if($status=="Approved"){ 
?>
  <a type="button" class="btn btn-primary btn-xs" disabled> EDIT
     </a>
  <?php    
}else{
?>
  <a href="index.php" class="btn btn-primary btn-xs"> EDIT
    </a>
  <?php    
}
?>
Assaad Lutf
sumber
2

Saya dapat mencapai hasil yang diinginkan menggunakan operasi ternary ng-href

<a ng-href="{{[condition] ? '' : '/'}}" ng-class="{'is-disabled':[condition]}">123n</a>

dimana

a.is-disabled{
   color: grey;
   cursor: default;

   &:hover {
      text-decoration: none;
   }
} 
Corey Webster
sumber
1

Gunakan tombol dan tautan dengan benar.

• Tombol mengaktifkan fungsionalitas scripted pada halaman web (dialog, memperluas / menciutkan wilayah).

• Tautan membawa Anda ke lokasi lain, baik ke halaman lain atau lokasi berbeda di halaman yang sama.

Jika Anda mengikuti aturan ini, tidak akan ada skenario saat Anda perlu menonaktifkan tautan. Bahkan jika Anda membuat tautan terlihat dinonaktifkan secara visual dan klik kosong

<a href="" ng-click="Ctrl._isLinkActive && $ctrl.gotoMyAwesomePage()"

Anda tidak akan mempertimbangkan aksesibilitas dan pembaca layar akan membacanya sebagai tautan dan orang-orang tunanetra akan terus bertanya-tanya mengapa tautan tidak berfungsi.

Sengupta Amit
sumber
1

Jika Anda menggunakan WordPress, saya membuat sebuah plugin yang dapat melakukan ini & lebih banyak lagi tanpa perlu tahu cara membuat kode apa pun. Yang perlu Anda lakukan adalah menambahkan pemilih tautan yang ingin Anda nonaktifkan & kemudian pilih "Nonaktifkan semua tautan dengan pemilih ini di tab baru." dari menu dropdown yang muncul dan klik pembaruan.

Klik di sini untuk melihat gif yang menunjukkan ini

Anda bisa mendapatkan versi gratis dari repositori Plugin WordPress.org untuk mencobanya.

Chris Marabate
sumber
1

Berikut ini berbagai cara untuk menonaktifkan tanda:

<a >Link Text</a> remove the href from your anchor tag
<a href=”javascript:void(0)”/>Link text</a> put javascript:void(0) in href
<a href="/" onclick="return false;">Link text</a> using return false

Karena tidak ada atribut yang dinonaktifkan untuk tag anchor. Jika Anda ingin menghentikan perilaku tag anchor di dalam fungsi jQuery daripada Anda dapat menggunakan baris di bawah ini di awal fungsi:

$( "a" ).click(function( e ) {
e.preventDefault();
$( "<div>" )
.append( "default " + e.type + " prevented" )
.appendTo( "#log" );
});

event.preventDefault ()

Mahak Choudhary
sumber
1

Saya melihat sudah ada satu ton jawaban yang diposting di sini, tetapi saya tidak berpikir ada yang jelas belum yang menggabungkan pendekatan yang telah disebutkan ke dalam yang saya temukan berhasil. Ini untuk membuat tautan keduanya tampak dinonaktifkan, dan juga tidak mengarahkan pengguna ke halaman lain.

Jawaban ini mengasumsikan Anda menggunakan jquery dan bootstrap , dan menggunakan properti lain untuk menyimpan sementara hrefproperti sementara dinonaktifkan.

//situation where link enable/disable should be toggled
function toggle_links(enable) {
    if (enable) {
        $('.toggle-link')
        .removeClass('disabled')
        .prop('href', $(this).attr('data-href'))
    }
    else {
        $('.toggle-link')
        .addClass('disabled')
        .prop('data-href', $(this).prop('href'))
        .prop('href','#')
    }
a.disabled {
  cursor: default;
}
owengall
sumber
0

Apa pun yang ada di tag href akan ditampilkan di kiri bawah jendela browser ketika Anda mengarahkan mouse ke sana.

Saya pribadi berpikir memiliki sesuatu seperti javascript: void (0) yang ditampilkan kepada pengguna mengerikan.

Sebagai gantinya, tinggalkan href off, lakukan sihir Anda dengan jQuery / apa pun dan tambahkan aturan gaya (jika Anda masih membutuhkannya agar terlihat seperti tautan):

a {
    cursor:pointer;
}
Enigma Plus
sumber
0

Jawaban terbaik selalu yang paling sederhana. Tidak perlu coding.

Jika tag anchor (a) tidak memiliki atribut href, itu hanya pengganti untuk hyperlink. Didukung oleh semua browser!

<a href="/">free web counters</a><br  />
<a "/">free web counters</a>

Intergalaksi
sumber
-1

Anda dapat menonaktifkan tag jangkar dengan mengembalikan false. Dalam kasus saya, saya menggunakan sudut dan ng-dinonaktifkan untuk akordeon Jquery dan saya perlu menonaktifkan bagian.

Jadi saya membuat cuplikan js kecil untuk memperbaikinya.

       <a class="opener" data-toggle="collapse"
                   data-parent="#shipping-detail"
                   id="shipping-detail-section"
                   href="#shipping-address"
                   aria-expanded="true"
                   ng-disabled="checkoutState.addressSec">
                   Shipping Address</a>
     <script>
          $("a.opener").on("click", function () {
           var disabled = $(this).attr("disabled");
           if (disabled === 'disabled') {
            return false;
           }
           });
     </script>
Darryl Windsor
sumber
-1

jika Anda hanya ingin menonaktifkan sementara tautan tetapi meninggalkan href di sana untuk mengaktifkan nanti (yang ingin saya lakukan) saya menemukan bahwa semua browser menggunakan href pertama. Karena itu saya dapat melakukan:

<a class="ea-link" href="javascript:void(0)" href="/export/">Export</a>
Angus Walker
sumber
Ini adalah HTML yang tidak valid, seperti yang dijelaskan di stackoverflow.com/q/26341507/1709587 . Jika motivasi Anda hanya untuk menjaga href di sekitar kode sumber Anda sehingga mudah untuk mengedit sumber Anda nanti untuk mengembalikannya, ada beberapa cara melakukannya yang tidak melibatkan pelanggaran terhadap spek, seperti menggunakan komentar. Saya merekomendasikan untuk tidak menulis HTML yang tidak valid seperti ini tanpa alasan kuat untuk melakukannya.
Mark Amery
-1

Varian yang cocok untuk saya:

<script>
  function locker(){
    if ($("a").hasClass("locked")) {
         $("a").removeClass('locked').addClass('unlocked');
         $("a").attr("onClick","return false");
    } else {
         $("a").css("onclick","true");
         $("a").removeClass('unlocked').addClass('locked');
         $("a").attr("onClick","");
    }
  }
</script>

<button onclick="locker()">unlock</button>

<a href="http://some.site.com" class="locked">
  <div> 
      .... 
  <div>
</a>
Sampah
sumber
-1

<a href="/" disabled="true" onclick="return false">123</a>

Hanya menambahkan: Ini berfungsi secara umum, namun tidak akan berfungsi jika pengguna telah menonaktifkan javascript di browser.

1) Anda secara opsional dapat menggunakan kelas Bootstrap 3 pada tag jangkar Anda untuk menonaktifkan tag href, setelah mengintegrasikan plugin bootstrap 3 lakukan

<a href="/" class="btn btn-primary disabled">123n</a>

Atau

2) Pelajari cara mengaktifkan javascript menggunakan html atau js di browser. atau buat pengguna yang memberi tahu pop-up untuk mengaktifkan javascript sebelum menggunakan situs web

OlaJ
sumber