Apakah boleh menggunakan tag jangkar tanpa menyertakan hrefatribut, dan sebagai gantinya menggunakan pengendali event klik JavaScript? Jadi saya akan menghilangkan hrefsepenuhnya, bahkan tidak memilikinya kosong ( href="").
Apakah boleh menggunakan tag jangkar tanpa menyertakan hrefatribut, dan sebagai gantinya menggunakan pengendali event klik JavaScript? Jadi saya akan menghilangkan hrefsepenuhnya, bahkan tidak memilikinya kosong ( href="").
Jawaban:
Di HTML5, menggunakan aelemen tanpa hrefatribut valid. Itu dianggap sebagai "hyperlink placeholder."
Contoh:
<a>previous</a>
Cari "hyperlink placeholder" di halaman referensi tag anchor w3c: https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element .
Dan itu juga disebutkan di wiki di sini: https://www.w3.org/wiki/Elements/a
Tautan placeholder adalah untuk kasus-kasus di mana Anda ingin menggunakan elemen jangkar, tetapi tidak menavigasi ke mana pun. Ini berguna untuk menandai halaman saat ini di menu navigasi atau jejak remah roti. (Pendekatan lama seharusnya menggunakan tag rentang atau tag jangkar dengan kelas bernama "aktif" atau "saat ini" untuk menatanya dan JavaScript untuk membatalkan navigasi.)
Tautan placeholder juga berguna dalam kasus di mana Anda ingin menetapkan tujuan tautan secara dinamis melalui JavaScript saat runtime. Anda cukup mengatur nilai atribut href, dan tag anchor menjadi dapat diklik.
Lihat juga:
hrefitu cursor: pointergaya tidak akan otomatis ditambahkan ke elemen.
Tidak apa-apa, tetapi pada saat yang sama dapat menyebabkan beberapa browser menjadi lambat.
http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/
Saran saya adalah gunakan <a href="#"> </a>
Jika Anda menggunakan JQuery ingat juga untuk menggunakan:
.click(function(event){
event.preventDefault();
// Click code here...
});
Jawaban singkat: Tidak.
Jawaban panjang:
Pertama, tanpa atribut href, itu tidak akan menjadi tautan. Jika itu bukan tautan maka itu tidak akan dapat diakses dengan keyboard (atau tombol napas, atau berbagai perangkat input lain yang tidak berbasis pointer) (kecuali jika Anda menggunakan fitur HTML 5 tabindexyang tidak didukung secara universal). Sangat jarang bahwa itu sesuai untuk kontrol untuk tidak memiliki akses keyboard.
Kedua. Anda harus memiliki alternatif ketika JavaScript tidak berjalan (karena lambat memuat dari server, koneksi Internet terputus (mis. Sinyal seluler di kereta bergerak), JS dimatikan, dll, dll.).
Menggunakan peningkatan progresif oleh JS yang tidak mencolok.
hrefwajib (kecuali jika itu adalah jangkar bernama dalam hal tabindex tidak masuk akal). Penggunaan tabindexuntuk menambahkan elemen yang tidak fokus ke urutan tab adalah inovasi baru dalam HTML 5.
atag tanpa hrefatribut.
Jika Anda harus menggunakan href untuk kompabilitas mundur, Anda juga dapat menggunakan
<a href="javascript:void(0)">link</a>
alih-alih #, jika Anda tidak ingin menggunakan atribut
Tag tersebut boleh digunakan tanpa atribut href. Berlawanan dengan banyak jawaban di sini, sebenarnya ada alasan standar untuk membuat jangkar ketika tidak ada href. Secara semantik, "a" berarti jangkar atau tautan. Jika Anda menggunakannya untuk sesuatu yang mengikuti makna itu, maka Anda baik-baik saja.
Salah satu standar penggunaan tag tanpa href adalah membuat tautan bernama. Ini memungkinkan Anda untuk menggunakan jangkar dengan nama = bla dan nanti Anda dapat membuat jangkar dengan href = # bla untuk menautkan ke bagian bernama dari halaman saat ini. Namun, ini sudah usang karena Anda juga dapat menggunakan ID dengan cara yang sama. Sebagai contoh, Anda bisa menggunakan tag tajuk dengan id = tajuk dan nantinya Anda bisa memiliki jangkar yang menunjuk ke href = # tajuk.
Maksud saya, bagaimanapun, bukan untuk menyarankan menggunakan properti nama. Hanya untuk menyediakan satu kasus penggunaan di mana Anda tidak memerlukan href, dan karena itu alasan mengapa tidak diperlukan.
hrefatribut untuk <a>elemen yang digunakan sebagai elemen interaktif (yaitu tautan). Seperti yang Anda sebutkan, tanpa hrefatribut itu cukup sederhana ... bukan tautan, hanya jangkar, yang merupakan hal yang berbeda sama sekali.
Dari perspektif aksesibilitas <a>tanpa href tidak dapat-tab, semua tautan harus bisa-tab jadi tambahkan tabindex = '0 "jika Anda tidak memiliki href.
The <a>tag tanpa "href" dapat berguna ketika menggunakan menu multi-level dan Anda perlu untuk memperluas tingkat berikutnya tetapi tidak ingin bahwa label menu untuk menjadi link aktif. Saya tidak pernah memiliki masalah menggunakannya dengan cara itu.
Di beberapa browser Anda akan menghadapi masalah jika Anda tidak memberikan atribut href. Saya sarankan Anda untuk menulis kode Anda seperti ini:
<a href="#" onclick="yourcode();return false;">Link</a>
Anda dapat mengganti kode Anda () dengan fungsi atau logika Anda sendiri, tetapi jangan lupa untuk menambahkan return false; pernyataan di akhir.
#untuk halaman indeks. Untuk beberapa tautan navbar saya, saya tidak ingin memicu rute ke #mana yang terjadi jika Anda menggunakannya a href="#"dengan sendirinya. Menggunakan <a href="#" onclick="return false;"menghentikan rute yang dipicu tetapi acara klik masih menggelembung ke handler saya (yang menggunakan acara DOM terhubung melalui jQuery dan Backbone.Radio). Terima kasih @ shashwat13 :)