Jika Anda tidak ingin mengarahkannya ke apa pun, Anda mungkin tidak boleh menggunakan <a>tag (anchor).
Jika Anda ingin sesuatu terlihat seperti tautan tetapi tidak bertindak seperti tautan, yang terbaik adalah menggunakan elemen yang sesuai (seperti <span>) dan kemudian gaya menggunakan CSS:
<spanclass="fake-link"id="fake-link-1">Am I a link?</span>
.fake-link {
color: blue;
text-decoration: underline;
cursor: pointer;
}
Juga, mengingat bahwa Anda menandai pertanyaan ini "jQuery", saya berasumsi bahwa Anda ingin melampirkan hander acara klik. Jika demikian, lakukan hal yang sama seperti di atas dan gunakan sesuatu seperti JavaScript berikut:
$('#fake-link-1').click(function(){/* put your code here */});
Ini memiliki masalah: tidak memungkinkan navigasi tab.
6
Perhatikan bahwa (seperti yang ditunjukkan oleh Iraimbilanja) pendekatan span di sini menonaktifkan kemungkinan untuk memanggil fungsi menggunakan keyboard, yang saya anggap sebagai masalah kegunaan.
Fredrik Mörk
3
Juga masalah aksesibilitas. Anda dapat mengatasinya dengan menggunakan elemen tombol (dihasilkan dari JavaScript sehingga pengguna non-JS tidak mendapatkan kontrol yang rusak).
Quentin
4
Berikut ini adalah perbaikan cepat untuk itu: tabindex = "0" pada elemen non-tautan akan memungkinkan navigasi keyboard di sebagian besar browser modern.
Mathias Bynens
1
'Masalah' lain adalah Anda tidak menggunakan CSS: hover pseudo class tidak akan bekerja pada elemen yang tidak memiliki tautan di IE6. Tetapi karena Anda tetap menambahkan elemen-elemen ini melalui JavaScript (setidaknya, Anda harus), Anda bisa juga menulis skrip yang menambahkan kelas .hover ke elemen ketika melayang.
Mathias Bynens
268
Ada beberapa solusi yang kurang sempurna:
1. Tautan ke jangkar palsu
<ahref="#">
Masalah: mengklik tautan melompat kembali ke bagian atas halaman
2. Menggunakan tag selain 'a'
Gunakan tag rentang dan gunakan jquery untuk menangani klik
Masalah: istirahat navigasi keyboard, harus secara manual mengubah kursor hover
Saya biasanya menggunakan javascript: void (0); pendekatan, karena menggunakan # menampilkan URL saat ini di bilah Firefox di mouse, yang dapat menyesatkan bagi pengguna.
lucaferrario
8
breaks when linking images in IEApa artinya ini?
eugene
14
@ eugene pertanyaan ini sudah berusia 3 tahun sekarang, tetapi IE dulu membuat gambar menghilang ketika dikelilingi oleh tautan ke fungsi yang tidak berlaku. Tidak yakin kapan diperbaiki, tetapi berfungsi di IE10, yang sudah saya instal. Saya pribadi sekarang menggunakan<a href="javascript:;">
zaius
1
Saya telah menggunakan komentar di sana, juga: <a href="javascript:void(0); // Tampilkan palet properti">. Dengan begitu, saat pengguna melayang, mereka melihat komentar yang dapat memberi mereka petunjuk apa yang diharapkan ketika mereka mengklik. (Meskipun Anda bisa menggunakan tooltip juga.)
Robin Zimmermann
5
Tampaknya itu href="javascript:"juga cukup dan berfungsi di browser utama terbaru. Tidak perlu untuk titik koma, bahkan PhpStorm menyarankan untuk menghapusnya.
jlh
40
Untuk membuatnya tidak melakukan apa-apa, gunakan ini:
Sementara itu terdengar seperti itu "tepat" karena itu berhenti acara menggelegak, "kembali salah" jauh lebih sedikit dan melakukan hal yang sama. Satu-satunya waktu yang ingin Anda lakukan adalah jika Anda sudah memiliki penangan acara terdaftar untuk mengklik tautan melalui jQuery.
aleemb
25
Ada banyak cara untuk melakukannya
Jangan tambahkan dan hrefatribut
<aname="here"> Test <a>
Anda dapat menambahkan onclick event daripada href like
<aname="here"onclick="YourFunction()"> Test <a>
Atau Anda dapat menambahkan fungsi void seperti ini yang akan menjadi cara terbaik
Ini adalah rip-off dari jawaban yang sudah ada sebelumnya
aross
1
Jangan lupa untuk mengatur gaya tag anchor Anda jika Anda menghapus hrefatribut karena tidak lagi berperilaku seperti hyperlink (meskipun onclick masih berfungsi) Anda harus mengatur ulang hal-hal seperti cursor: pointer;dan :hoverpemilih.
Jawaban ini harus diperbarui untuk mencerminkan standar web baru (HTML5).
Ini:
<atabindex="0">This represents a placeholder hyperlink</a>
... adalah HTML5 yang valid. Atribut tabindex menjadikannya keyboard yang fokus seperti hyperlink normal. Anda mungkin juga menggunakan spanelemen untuk ini seperti yang disebutkan sebelumnya, tetapi saya menemukan menggunakan aelemen lebih elegan.
Ini juga HTML4 yang valid, tetapi tidak akan menentukan gaya anchor sebagai tautan.
interjay
1
Saya tidak tahu itu html4 valid, tetapi spec HTML5 secara eksplisit menyebutkan use-case. Dan gaya yang tidak menargetkan atribut href akan berfungsi dengan baik, hanya gaya browser default yang mungkin menjadi masalah.
aross
1
Ini juga tidak memicu clickperistiwa ketika pengguna memfokuskan elemen dan menekan masuk (diuji di Firefox 51).
torvin
@torvin, itu sederhana. Gunakan keydownacara tersebut.
aross
aneh aneh
12
Berikut adalah tiga cara untuk <a>tag hrefproperti tag merujuk kepada apa-apa:
<ahref="JavaScript:void(0)"> link </a><ahref="javascript:;">link</a><ahref="#"onclick="returnfalse;"> Link </a>
Saya tahu ini adalah pertanyaan lama, tapi saya pikir saya akan menambahkan dua sen:
Tergantung pada apa yang akan dilakukan tautan, tetapi biasanya, saya akan mengarahkan tautan ke url yang mungkin menampilkan / melakukan hal yang sama, misalnya, jika Anda membuat sedikit tentang kotak sembulan:
Dengan cara ini, browser yang sangat lama (atau browser dengan JavaScript dinonaktifkan) masih dapat menavigasi ke halaman tentang yang terpisah, tetapi yang lebih penting, Google juga akan mengambil ini dan merangkak konten halaman tentang.
Terima kasih! Ini sangat cocok untuk kasus saya. Di mana saya ingin memiliki tag Anchor untuk dibuka di tab baru ketika ada URL, tetapi tidak ada jika tidak ada URL. Dalam hal # itu menerima KLIK dan memindahkannya ke atas halaman. Tidak memiliki bagian href seperti yang Anda sarankan. Itu memecahkan masalah! Pemformatan tampak hebat karena sebuah tag, masalah klik hilang tanpa href. Terima kasih!!!
Mohsin
1
Jika orang lain berpikir kalau itu HTML5 valid, maka jawabannya adalah YA :) stackoverflow.com/a/33046203/5323892 . Ini dari contoh dari halaman standar (lihat item li ke-3): <nav> <ul> <li> <a href="https://stackoverflow.com/"> Beranda </a> </li> <li> <a href = "/ news "> Berita </a> </li> <li> <a> Contoh </a> </li> <li> <a href="https://stackoverflow.com/legal"> Legal </a> </li> </ ul> </nav>
Mohsin
Ini berfungsi tetapi jika Anda ingin pointer mouse berubah menjadi jari, cukup tambahkan href = "JavaScript: void (0)" seperti yang disarankan pada jawaban @Rutesh Makhijani.
Tarik
3
Satu-satunya hal yang berhasil bagi saya adalah kombinasi dari yang di atas:
ini adalah tag jangkar saya. jadi kembalikan false pada onClick = "" acara tidak berguna di sini. Saya baru saja menghapus properti href = "#" dan berhasil bagi saya seperti di bawah ini
Saya mengalami masalah ini di situs WordPress. Header pada menu dropdown selalu memiliki atribut href=""dan plugin header yang digunakan hanya diperbolehkan url standar. Solusi termudah di sana adalah hanya menjalankan kode ini di footer:
Bereaksi tidak lagi mendukung menggunakan fungsi seperti ini href="javascript:void(0)"di jangkar tag Anda, tetapi di sini ada sesuatu yang bekerja dengan cukup baik.
href
atribut di dalamnya.Jawaban:
Jika Anda tidak ingin mengarahkannya ke apa pun, Anda mungkin tidak boleh menggunakan
<a>
tag (anchor).Jika Anda ingin sesuatu terlihat seperti tautan tetapi tidak bertindak seperti tautan, yang terbaik adalah menggunakan elemen yang sesuai (seperti
<span>
) dan kemudian gaya menggunakan CSS:Juga, mengingat bahwa Anda menandai pertanyaan ini "jQuery", saya berasumsi bahwa Anda ingin melampirkan hander acara klik. Jika demikian, lakukan hal yang sama seperti di atas dan gunakan sesuatu seperti JavaScript berikut:
sumber
Ada beberapa solusi yang kurang sempurna:
1. Tautan ke jangkar palsu
Masalah: mengklik tautan melompat kembali ke bagian atas halaman
2. Menggunakan tag selain 'a'
Gunakan tag rentang dan gunakan jquery untuk menangani klik
Masalah: istirahat navigasi keyboard, harus secara manual mengubah kursor hover
3. Tautan ke fungsi javascript void
Masalah: rusak saat menautkan gambar di IE
Larutan
Karena semua ini memiliki masalah, solusi yang saya pilih adalah dengan menautkan ke jangkar palsu, dan kemudian kembali palsu dari metode onClick:
Bukan solusi yang paling ringkas, tetapi ini menyelesaikan semua masalah dengan metode di atas.
sumber
breaks when linking images in IE
Apa artinya ini?<a href="javascript:;">
href="javascript:"
juga cukup dan berfungsi di browser utama terbaru. Tidak perlu untuk titik koma, bahkan PhpStorm menyarankan untuk menghapusnya.Untuk membuatnya tidak melakukan apa-apa, gunakan ini:
sumber
<a href="javascript:;">
. PS tidak bekerja dengantarget=_blank
meskipunCara yang benar untuk menangani ini adalah "memecah" tautan dengan jQuery ketika Anda menangani tautan tersebut
HTML
JS
Dua panggilan terakhir menghentikan browser yang mengartikan klik.
sumber
Ada banyak cara untuk melakukannya
Jangan tambahkan dan
href
atributAnda dapat menambahkan onclick event daripada href like
Atau Anda dapat menambahkan fungsi void seperti ini yang akan menjadi cara terbaik
sumber
href
atribut karena tidak lagi berperilaku seperti hyperlink (meskipun onclick masih berfungsi) Anda harus mengatur ulang hal-hal seperticursor: pointer;
dan:hover
pemilih.Apa yang tidak kamu maksudkan dengan apa pun?
atau
sumber
Saya pikir Anda bisa mencoba
Satu-satunya tangkapan yang saya lihat di sini adalah keamanan browser tingkat tinggi dapat meminta eksekusi javascript.
Padahal ini adalah salah satu cara yang lebih mudah daripada
ini harus digunakan dengan hemat
Baca artikel ini untuk beberapa petunjuk https://web.archive.org/web/20090301044015/http://blog.reindel.com/2006/08/11/a-hrefjavascriptvoid0-avoid-the-void
sumber
Jawaban ini harus diperbarui untuk mencerminkan standar web baru (HTML5).
Ini:
... adalah HTML5 yang valid. Atribut tabindex menjadikannya keyboard yang fokus seperti hyperlink normal. Anda mungkin juga menggunakan
span
elemen untuk ini seperti yang disebutkan sebelumnya, tetapi saya menemukan menggunakana
elemen lebih elegan.Lihat: https://w3c.github.io/html-reference/a.html
dan: https://html.spec.whatwg.org/multipage/links.html#attr-hyperlink-href
sumber
click
peristiwa ketika pengguna memfokuskan elemen dan menekan masuk (diuji di Firefox 51).keydown
acara tersebut.Berikut adalah tiga cara untuk
<a>
taghref
properti tag merujuk kepada apa-apa:sumber
Saya tahu ini adalah pertanyaan lama, tapi saya pikir saya akan menambahkan dua sen:
Tergantung pada apa yang akan dilakukan tautan, tetapi biasanya, saya akan mengarahkan tautan ke url yang mungkin menampilkan / melakukan hal yang sama, misalnya, jika Anda membuat sedikit tentang kotak sembulan:
Lalu dengan jQuery
Dengan cara ini, browser yang sangat lama (atau browser dengan JavaScript dinonaktifkan) masih dapat menavigasi ke halaman tentang yang terpisah, tetapi yang lebih penting, Google juga akan mengambil ini dan merangkak konten halaman tentang.
sumber
Pastikan semua tautan yang ingin Anda hentikan
href="#!"
(atau apa pun yang Anda inginkan, benar-benar), lalu gunakan ini:sumber
Anda dapat memiliki jangkar (
a
tag) HTML tanpahref
atribut. Tinggalkanhref
atribut & itu tidak akan terhubung ke apa pun:sumber
Satu-satunya hal yang berhasil bagi saya adalah kombinasi dari yang di atas:
Pertama li di ul
Kemudian di LoadTab2_1 saya secara manual mengganti div tab
Ini karena pemutusan sambungan juga memutuskan tindakan di tab
Anda juga perlu melakukan penataan tab secara manual saat tab utama mengubah sesuatu
sumber
Anda bisa melakukannya dengan
sumber
ini adalah tag jangkar saya. jadi kembalikan false pada onClick = "" acara tidak berguna di sini. Saya baru saja menghapus properti href = "#" dan berhasil bagi saya seperti di bawah ini
dan saya perlu menambahkan css ini.
sumber
Saya mengalami masalah ini di situs WordPress. Header pada menu dropdown selalu memiliki atribut
href=""
dan plugin header yang digunakan hanya diperbolehkan url standar. Solusi termudah di sana adalah hanya menjalankan kode ini di footer:Ini akan mencegah jangkar kosong dari melakukan apa pun.
sumber
Bereaksi tidak lagi mendukung menggunakan fungsi seperti ini
href="javascript:void(0)"
di jangkar tag Anda, tetapi di sini ada sesuatu yang bekerja dengan cukup baik.sumber
Saya tahu ini ditandai sebagai pertanyaan jQuery, tetapi Anda juga dapat menjawabnya dengan AngularJS.
di elemen Anda, tambahkan arahan ng-klik dan gunakan variabel $ event yang merupakan acara klik ... cegah perilaku default-nya:
Anda bahkan dapat melewatkan variabel $ event ke dalam suatu fungsi:
dalam fungsi itu, Anda melakukan apa pun yang Anda inginkan dengan acara klik.
sumber