Berikut ini adalah dua metode membangun tautan yang memiliki tujuan tunggal menjalankan kode JavaScript. Mana yang lebih baik, dalam hal fungsionalitas, kecepatan memuat halaman, keperluan validasi, dll.?
function myJsFunc() {
alert("myJsFunc");
}
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>
atau
function myJsFunc() {
alert("myJsFunc");
}
<a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>
javascript
html
performance
optimization
href
Peter Mortensen
sumber
sumber
<a href="javascript:void(0)" onclick="myJsFunc();">
sama sekali tidak masuk akal. Jika Anda harus menggunakanjavascript:
protokol-psuedo, Anda tidak perluonclick
atributnya juga.<a href="javascript:myJsFunc();">
akan baik-baik saja.myJsFunc()
memiliki nilai balik, halaman Anda akan rusak. jsfiddle.net/jAd9G Sebaiknya kau masih harus menggunakanvoid
seperti:<a href="javascript:void myJsFunc();">
. Namun kemudian, perilakunya masih akan berbeda. Meminta tautan melalui menu konteks tidak memicuclick
acara.<a href="javascript:;" onclick="myEvent()"
?javascript:;
jauh lebih cepat untuk mengetik daripadajavascript:void(0)
<a>
tag jika apa yang ingin Anda lakukan BUKAN membuka halaman lain melalui fitur browser asli tetapi memiliki beberapa 'tindakan' javascript untuk dipicu? Cukup menggunakanspan
tag dengan kelasjs-trigger
mungkin akan jauh lebih baik ". Atau apakah saya melewatkan sesuatu?Jawaban:
Saya menggunakan
javascript:void(0)
.Tiga alasan. Mendorong penggunaan di
#
antara tim pengembang mau tidak mau mengarah ke beberapa menggunakan nilai kembali fungsi yang disebut seperti ini:Tetapi kemudian mereka lupa untuk menggunakan
return doSomething()
onclick dan hanya menggunakandoSomething()
.Alasan kedua untuk menghindari
#
adalah bahwa finalreturn false;
tidak akan mengeksekusi jika fungsi yang dipanggil melempar kesalahan. Oleh karena itu pengembang juga harus ingat untuk menangani kesalahan dengan tepat pada fungsi yang dipanggil.Alasan ketiga adalah bahwa ada kasus di mana
onclick
properti acara ditetapkan secara dinamis. Saya lebih suka untuk dapat memanggil fungsi atau menugaskannya secara dinamis tanpa harus kode fungsi khusus untuk satu metode lampiran atau yang lain. Karenanya sayaonclick
(atau apa pun) di markup HTML terlihat seperti ini:ATAU
Menggunakan
javascript:void(0)
menghindari semua sakit kepala di atas, dan saya belum menemukan contoh kelemahan.Jadi jika Anda seorang pengembang tunggal maka Anda dapat dengan jelas membuat pilihan sendiri, tetapi jika Anda bekerja sebagai tim, Anda harus menyatakan:
Gunakan
href="#"
, pastikanonclick
selalu mengandungreturn false;
di akhir, bahwa setiap fungsi yang dipanggil tidak menimbulkan kesalahan dan jika Anda melampirkan fungsi secara dinamis keonclick
properti pastikan bahwa dan tidak membuang kesalahan itu kembalifalse
.ATAU
Menggunakan
href="javascript:void(0)"
Yang kedua jelas jauh lebih mudah untuk berkomunikasi.
sumber
href="javascript:void(0)"
metode inijavascript:
apa pun harus dianggap praktik yang buruk, menonjol dan tidak anggun.event.preventDefault()
ada tepat untuk mencegah perilaku default (seperti melompat ke bagian atas halaman dalam kasus ini) dan melakukan pekerjaan yang lebih baik tanpa semuareturn false;
kegilaan.javascript:void(0)
melanggar Kebijakan Keamanan Konten pada halaman HTTPS yang mendukung CSP. Salah satu opsi akan digunakanhref='#'
danevent.preventDefault()
di handler, tapi saya tidak suka ini. Mungkin Anda dapat membuat konvensi untuk digunakanhref='#void'
dan memastikan tidak ada elemen pada halaman tersebutid="void"
. Dengan begitu, mengklik tautan ke jangkar yang tidak ada tidak akan menggulir halaman.href
. Ini akan dilakukan di jQuery dengan:$('a[href="#"]').click(function(e) { e.preventDefault ? e.preventDefault() : e.returnValue = false; });
Tidak juga.
Jika Anda dapat memiliki URL aktual yang masuk akal gunakan itu sebagai HREF. Onclick tidak akan aktif jika seseorang mengeklik tengah tautan Anda untuk membuka tab baru atau jika JavaScript dinonaktifkan.
Jika itu tidak memungkinkan, maka Anda setidaknya harus menyuntikkan tag jangkar ke dalam dokumen dengan JavaScript dan penangan peristiwa klik yang sesuai.
Saya menyadari ini tidak selalu mungkin, tetapi menurut saya harus diupayakan untuk mengembangkan situs web publik apa pun.
Lihat JavaScript yang Tidak Mengganggu dan peningkatan Progresif (keduanya Wikipedia).
sumber
javascript:
atau#
keduanya praktik buruk dan tidak dianjurkan. Artikel bagus btw.<button>
memang dibuat untuk itu. Tetapi setuju: itu mungkin tidak boleh secara khusus<a>
jika tidak ada tempat yang cocok untuk terhubung.Melakukan
<a href="#" onclick="myJsFunc();">Link</a>
atau<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>
atau apa pun yang mengandungonclick
atribut - baik-baik saja kembali lima tahun yang lalu, meskipun sekarang bisa menjadi praktik yang buruk. Inilah alasannya:Ini mempromosikan praktik JavaScript yang mencolok - yang ternyata sulit dipertahankan dan sulit untuk ditingkatkan. Lebih lanjut tentang ini di JavaScript tidak mengganggu .
Anda menghabiskan waktu Anda menulis kode yang sangat terlalu banyak - yang memiliki sedikit manfaat (jika ada) untuk basis kode Anda.
Sekarang ada cara yang lebih baik, lebih mudah, dan lebih dapat dipertahankan dan terukur untuk mencapai hasil yang diinginkan.
Cara JavaScript yang tidak mencolok
Hanya saja, tidak memiliki
href
atribut sama sekali! Reset CSS yang baik akan mengatasi gaya kursor default yang hilang, sehingga itu bukan masalah. Kemudian lampirkan fungsionalitas JavaScript Anda menggunakan praktik terbaik yang anggun dan tidak mencolok - yang lebih dapat dipertahankan karena logika JavaScript Anda tetap dalam JavaScript, daripada di markup Anda - yang penting ketika Anda mulai mengembangkan aplikasi JavaScript skala besar yang mengharuskan logika Anda untuk dipecah menjadi komponen dan templat kotak hitam. Lebih lanjut tentang ini dalam Arsitektur Aplikasi JavaScript skala besarContoh kode sederhana
Sebuah blackboxed Backbone.js contoh
Untuk contoh komponen scalable, blackboxed, Backbone.js - lihat contoh jsfiddle ini di sini . Perhatikan bagaimana kami menggunakan praktik JavaScript yang tidak mencolok, dan dalam jumlah kecil kode memiliki komponen yang dapat diulangi beberapa kali di halaman tanpa efek samping atau konflik antara berbagai komponen yang berbeda. Luar biasa!
Catatan
Menghilangkan
href
atribut padaa
elemen akan menyebabkan elemen tidak dapat diakses menggunakantab
navigasi tombol. Jika Anda ingin agar elemen-elemen itu dapat diakses melaluitab
kunci, Anda dapat mengaturtabindex
atribut, atau menggunakanbutton
elemen sebagai gantinya. Anda dapat dengan mudah menata elemen tombol agar terlihat seperti tautan normal seperti yang disebutkan dalam jawaban Tracker1 .Menghilangkan
href
atribut padaa
elemen akan menyebabkan Internet Explorer 6 dan Internet Explorer 7 tidak mengambila:hover
gaya, itulah sebabnya kami telah menambahkan shim JavaScript sederhana untuk mencapai ini viaa.hover
gantinya. Yang benar-benar oke, seolah-olah Anda tidak memiliki atribut href dan tidak ada degradasi yang anggun maka tautan Anda tidak akan berhasil - dan Anda akan memiliki masalah yang lebih besar untuk dikhawatirkan.Jika Anda ingin tindakan Anda tetap berfungsi dengan JavaScript dinonaktifkan, maka gunakan
a
elemen denganhref
atribut yang mengarah ke beberapa URL yang akan melakukan tindakan secara manual alih-alih melalui permintaan Ajax atau apa pun yang harus menjadi cara untuk pergi. Jika Anda melakukan ini, maka Anda ingin memastikan Anda melakukanevent.preventDefault()
panggilan klik untuk memastikan ketika tombol diklik tidak mengikuti tautan. Opsi ini disebut degradasi yang anggun.sumber
button
pendekatan bergaya tautan yang disarankan di sini terganggu oleh keadaan aktif "3d" yang tidak dapat dihindari di IE9 dan lebih rendah .javascript:void(0)
. Itu adalah jawaban pragmatis, dan satu-satunya jawaban yang masuk akal di dunia nyata.'#'
akan membawa pengguna kembali ke bagian atas halaman, jadi saya biasanya memilihvoid(0)
.javascript:;
juga berperilaku sepertijavascript:void(0);
sumber
#
atau#something
akan membawa Anda ke jangkar pada halaman dasar href , bukan pada halaman saat ini.#!
) melakukan trik tetapi ini jelas merupakan praktik yang buruk.Sejujurnya saya tidak menyarankan. Saya akan menggunakan gaya
<button></button>
untuk perilaku itu.Dengan cara ini Anda dapat menetapkan onclick Anda. Saya juga menyarankan mengikat melalui skrip, tidak menggunakan
onclick
atribut pada tag elemen. Satu-satunya gotcha adalah efek teks psuedo 3d di IE yang lebih lama yang tidak dapat dinonaktifkan.Jika Anda HARUS menggunakan elemen A, gunakan
javascript:void(0);
untuk alasan yang telah disebutkan.CATATAN: Anda dapat mengganti
0
dengan string sepertijavascript:void('Delete record 123')
yang dapat berfungsi sebagai indikator tambahan yang akan menunjukkan apa yang sebenarnya akan dilakukan oleh klik.sumber
<button>
tetapi sebagaiinput type=button
gantinya?<clickable>
elemen. Atau<clickabletim>
jika Anda suka. Sayangnya, menggunakan tag non-standar atau div biasa mungkin menyulitkan pengguna keyboard untuk memfokuskan elemen.button
. Dan IE9 dengan cepat kehilangan pangsa pasar, untungnya, dan efek aktif 1px seharusnya tidak mencegah kita untuk menggunakan markup semantik.<a>
adalah tautan, artinya mengirim Anda ke suatu tempat, untuk tindakan yang kami lakukan<button>
.Yang pertama, idealnya dengan tautan nyata untuk diikuti jika pengguna menonaktifkan JavaScript. Pastikan untuk mengembalikan false untuk mencegah peristiwa klik dari penembakan jika JavaScript dijalankan.
Jika Anda menggunakan Angular2, cara ini berfungsi:
<a [routerLink]="" (click)="passTheSalt()">Click me</a>
.Lihat di sini https://stackoverflow.com/a/45465728/2803344
sumber
Baik jika Anda bertanya kepada saya;
Jika "tautan" Anda memiliki tujuan tunggal menjalankan beberapa kode JavaScript, itu tidak memenuhi syarat sebagai tautan; bukan sepotong teks dengan fungsi JavaScript yang digabungkan dengannya. Saya akan merekomendasikan untuk menggunakan
<span>
tag denganonclick handler
lampiran dan beberapa CSS dasar untuk meniru tautan. Tautan dibuat untuk navigasi, dan jika kode JavaScript Anda bukan untuk navigasi, itu tidak boleh berupa<a>
tag.Contoh:
sumber
<span>
Ini tidak dimaksudkan untuk melakukan apa pun.<A>
Nchors dan<buttons>
digunakan untuk itu!buttons
adalah pilihan yang lebih baik di sini sementara menggunakanspan
tidak.Idealnya Anda akan melakukan ini:
Atau, lebih baik lagi, Anda akan memiliki tautan tindakan default di HTML, dan Anda akan menambahkan acara onclick ke elemen secara tidak mencolok melalui JavaScript setelah DOM dirender, sehingga memastikan bahwa jika JavaScript tidak ada / digunakan, Anda tidak memiliki penangan acara yang tidak berguna mengacaukan kode Anda dan berpotensi mengaburkan (atau setidaknya mengganggu) konten Anda yang sebenarnya.
sumber
Menggunakan hanya
#
membuat beberapa gerakan lucu, jadi saya akan merekomendasikan untuk digunakan#self
jika Anda ingin menghemat upaya mengetikJavaScript bla, bla,
.sumber
#self
tag yang diberi nama, dan menghindari perilaku browser yang menyebalkan untuk melompat ke atas halaman. Terima kasih.#self
sepertinya tidak istimewa. Setiap pengidentifikasi fragmen yang tidak cocok dengan nama atau id elemen apa pun dalam dokumen (dan tidak kosong atau "atas") harus memiliki efek yang sama.#void
konvensi di komentar lain tetapi sebenarnya#self
singkat dan mudah dihafal. Apa pun lebih baik daripada#
Saya menggunakan yang berikut ini
sebagai gantinya
sumber
javascript:
(tidak ada semi-kolon) karena terlihat paling rapi di status bar di hover.javascript:void('Do foo')
karena void akan kembali tidak terdefinisi terlepas, itu akan memberikan indikator kepada pengguna apa yang diklik akan dilakukan. Di manaDo foo
bisaDelete record X
atau apa pun yang Anda suka.Saya setuju dengan saran di tempat lain yang menyatakan bahwa Anda harus menggunakan URL biasa dalam
href
atribut, lalu memanggil beberapa fungsi JavaScript di onclick. Kekurangannya adalah, mereka secara otomatis menambahkanreturn false
setelah panggilan.Masalah dengan pendekatan ini adalah, bahwa jika fungsi tidak akan berfungsi atau jika akan ada masalah, tautan akan menjadi tidak dapat diklik. Acara onclick akan selalu kembali
false
, sehingga URL normal tidak akan dipanggil.Ada solusi yang sangat sederhana. Biarkan fungsi kembali
true
jika berfungsi dengan benar. Kemudian gunakan nilai yang dikembalikan untuk menentukan apakah klik harus dibatalkan atau tidak:JavaScript
HTML
Perhatikan, bahwa saya meniadakan hasil
doSomething()
fungsi. Jika berhasil, ia akan kembalitrue
, sehingga akan dinegasikan (false
) danpath/to/some/URL
tidak akan dipanggil. Jika fungsi akan kembalifalse
(misalnya, browser tidak mendukung sesuatu yang digunakan dalam fungsi atau ada yang salah), itu dinegasikan ketrue
danpath/to/some/URL
disebut.sumber
#
lebih baik daripadajavascript:anything
, tetapi berikut ini bahkan lebih baik:HTML:
JavaScript:
Anda harus selalu berusaha untuk degradasi yang anggun (dalam hal pengguna tidak mengaktifkan JavaScript ... dan ketika itu dengan spesifikasi. Dan anggaran). Selain itu, dianggap sebagai bentuk buruk untuk menggunakan atribut JavaScript dan protokol langsung dalam HTML.
sumber
click
pada tautan ...Saya sarankan menggunakan
<button>
elemen sebagai gantinya, terutama jika kontrol seharusnya menghasilkan perubahan dalam data. (Sesuatu seperti POST.)Bahkan lebih baik jika Anda menyuntikkan elemen secara tidak mencolok, jenis peningkatan progresif. (Lihat komentar ini .)
sumber
.btn
membuat tombol dan tautan terlihat persis sama.button
juga tidak memasukkan # ke dalam URL atau menunjukkana
href sebagai javascript:;Kecuali Anda menulis tautan menggunakan JavaScript (sehingga Anda tahu itu diaktifkan di browser), idealnya Anda harus menyediakan tautan yang tepat untuk orang-orang yang browsing dengan JavaScript dinonaktifkan dan kemudian mencegah tindakan default tautan di onclick Anda. pengendali acara. Dengan cara ini mereka yang mengaktifkan JavaScript akan menjalankan fungsi dan mereka yang dinonaktifkan JavaScript akan melompat ke halaman yang sesuai (atau lokasi dalam halaman yang sama) daripada hanya mengklik tautan dan tidak terjadi apa-apa.
sumber
Jelas hash (
#
) lebih baik karena dalam JavaScript itu adalah pseudoscheme:Tentu saja "#" dengan handler onclick yang mencegah aksi default adalah [jauh] lebih baik. Selain itu, tautan yang memiliki tujuan tunggal untuk menjalankan JavaScript tidak benar-benar "tautan" kecuali jika Anda mengirim pengguna ke beberapa jangkar yang masuk akal pada halaman (hanya # akan mengirim ke atas) ketika terjadi kesalahan. Anda cukup mensimulasikan tampilan dan nuansa tautan dengan stylesheet dan lupakan href sama sekali.
Selain itu, mengenai saran cowgod, khususnya ini:
...href="javascript_required.html" onclick="...
Ini adalah pendekatan yang baik, tetapi tidak membedakan antara skenario "JavaScript dinonaktifkan" dan "onclick gagal".sumber
Saya biasanya pergi untuk
Ini lebih pendek dari javascript: void (0) dan melakukan hal yang sama.
sumber
Saya akan menggunakan:
Alasan:
href
sederhana, mesin pencari membutuhkannya. Jika Anda menggunakan hal lain (seperti string), ini dapat menyebabkan404 not found
kesalahan.return false;
, halaman tidak melompat ke atas atau merusakback
tombol.sumber
Saya memilih menggunakan
javascript:void(0)
, karena menggunakan ini dapat mencegah klik kanan untuk membuka menu konten. Tetapijavascript:;
lebih pendek dan melakukan hal yang sama.sumber
Jadi, ketika Anda melakukan beberapa hal JavaScript dengan
<a />
tag dan jika Anda meletakkannyahref="#"
juga, Anda dapat menambahkan return false di akhir acara (dalam hal pengikatan acara inline) seperti:Atau Anda dapat mengubah atribut href dengan JavaScript seperti:
atau
Tapi secara semantik, semua cara di atas untuk mencapai ini salah (itu berfungsi dengan baik) . Jika ada elemen yang tidak dibuat untuk menavigasi halaman dan yang memiliki beberapa hal JavaScript yang terkait dengannya, maka itu tidak boleh a
<a>
tag.Anda cukup menggunakan a
<button />
untuk melakukan hal-hal atau elemen lain seperti b, span atau apa pun yang sesuai dengan kebutuhan Anda, karena Anda diizinkan untuk menambahkan acara pada semua elemen.Jadi, ada satu manfaat yang bisa digunakan
<a href="#">
. Anda mendapatkan kursor kursor secara default pada elemen itu saat melakukannyaa href="#"
. Untuk itu, saya pikir Anda dapat menggunakan CSS untuk seperti inicursor:pointer;
yang memecahkan masalah ini juga.Dan pada akhirnya, jika Anda mengikat acara dari kode JavaScript itu sendiri, di sana Anda dapat melakukannya
event.preventDefault()
untuk mencapai ini jika Anda menggunakan<a>
tag, tetapi jika Anda tidak menggunakan<a>
tag untuk ini, di sana Anda mendapatkan keuntungan, Anda tidak perlu tidak perlu melakukan ini.Jadi, jika Anda lihat, lebih baik tidak menggunakan tag untuk hal-hal semacam ini.
sumber
Jangan gunakan tautan hanya untuk menjalankan JavaScript.
Penggunaan href = "#" menggulir halaman ke atas; penggunaan void (0) menciptakan masalah navigasi di dalam browser.
Alih-alih, gunakan elemen selain tautan:
Dan tata dengan CSS:
sumber
span
elemen tersebut karena itu adalah elemen yang tidak dapat fokus. Itu sebabnya Anda butuh tombol.tabindex="0"
rentang. Yang mengatakan, menggunakan tombol lebih baik karena memberi Anda fungsi yang diinginkan secara gratis. Untuk membuatnya dapat diakses menggunakan rentang Anda tidak hanya perlu melampirkan pengendali klik, tetapi pengendali acara keyboard yang mencari penekan spasi atau tombol enter lalu menembakkan penangan klik normal. Anda juga ingin mengubah pemilih CSS kedua.funcActuator:hover, .funcActuator:focus
agar fakta bahwa elemen memiliki fokus jelas.Akan lebih baik menggunakan jQuery,
dan hilangkan keduanya
href="#"
danhref="javascript:void(0)"
.Markup tag jangkar akan seperti
Cukup sederhana!
sumber
Jika Anda menggunakan AngularJS , Anda dapat menggunakan yang berikut:
Yang tidak akan melakukan apa-apa.
Sebagai tambahan
false
dengan JavaScriptsumber
Jika tidak ada,
href
mungkin tidak ada alasan untuk menggunakan tag anchor.Anda dapat melampirkan acara (klik, arahkan, dll.) Pada hampir setiap elemen, jadi mengapa tidak menggunakan a
span
atau a sajadiv
?Dan untuk pengguna dengan JavaScript dinonaktifkan: jika tidak ada fallback (misalnya, alternatif
href
), mereka setidaknya harus tidak dapat melihat dan berinteraksi dengan elemen itu sama sekali, apa pun itu<a>
atau<span>
tag.sumber
Biasanya, Anda harus selalu memiliki tautan mundur untuk memastikan bahwa klien dengan JavaScript dinonaktifkan masih memiliki beberapa fungsi. Konsep ini disebut JavaScript tidak mencolok.
Contoh ... Katakanlah Anda memiliki tautan pencarian berikut:
Anda selalu dapat melakukan hal berikut:
Dengan begitu, orang-orang dengan JavaScript dinonaktifkan diarahkan ke
search.php
sementara pemirsa Anda dengan JavaScript melihat fungsionalitas yang ditingkatkan.sumber
Saya pribadi menggunakannya dalam kombinasi. Sebagai contoh:
HTML
dengan sedikit jQuery
atau
Tapi saya menggunakan itu hanya untuk mencegah halaman melompat ke atas ketika pengguna mengklik jangkar kosong. Saya jarang menggunakan onClick dan
on
acara lainnya langsung dalam HTML.Saran saya adalah menggunakan
<span>
elemen denganclass
atribut bukan jangkar. Sebagai contoh:Kemudian tetapkan fungsinya
.link
dengan skrip yang dibungkus di badan dan tepat sebelum</body>
tag atau dalam dokumen JavaScript eksternal.* Catatan: Untuk elemen yang dibuat secara dinamis, gunakan:
Dan untuk elemen yang dibuat secara dinamis yang dibuat dengan elemen yang dibuat secara dinamis, gunakan:
Kemudian Anda bisa mendesain elemen rentang agar terlihat seperti jangkar dengan sedikit CSS:
Berikut ini adalah contoh jsFiddle di atas.
sumber
Bergantung pada apa yang ingin Anda capai, Anda bisa melupakan onclick dan cukup gunakan href:
Itu sekitar kebutuhan untuk mengembalikan false. Saya tidak suka
#
opsi karena, seperti yang disebutkan, itu akan membawa pengguna ke bagian atas halaman. Jika Anda memiliki tempat lain untuk mengirim pengguna jika mereka tidak mengaktifkan JavaScript (yang jarang terjadi di tempat saya bekerja, tetapi ide yang sangat bagus), maka metode yang diusulkan Steve berfungsi dengan baik.Terakhir, Anda dapat menggunakan
javascript:void(0)
jika Anda tidak ingin ada orang pergi ke mana pun dan jika Anda tidak ingin memanggil fungsi JavaScript. Ini bekerja sangat baik jika Anda memiliki gambar yang Anda inginkan terjadi peristiwa mouseover, tetapi tidak ada yang bisa diklik pengguna.sumber
Ketika saya punya beberapa tautan palsu, saya lebih suka memberi mereka kelas 'tanpa tautan'.
Kemudian di jQuery, saya menambahkan kode berikut:
Dan untuk HTML, tautannya sederhana
Saya tidak suka menggunakan Hash-Tag kecuali mereka digunakan untuk jangkar, dan saya hanya melakukan di atas ketika saya punya lebih dari dua tautan palsu, kalau tidak saya akan menggunakan javascript: void (0).
Biasanya, saya ingin menghindari menggunakan tautan sama sekali dan hanya membungkus sesuatu dalam rentang dan menggunakannya sebagai cara untuk mengaktifkan beberapa kode JavaScript, seperti pop-up atau mengungkapkan konten.
sumber
Saya yakin Anda menunjukkan dikotomi yang salah. Ini bukan hanya dua opsi.
Saya setuju dengan Tn. D4V360 yang menyarankan itu, meskipun Anda menggunakan tag jangkar, Anda tidak benar-benar memiliki jangkar di sini. Yang Anda miliki hanyalah bagian khusus dari dokumen yang harus berperilaku sedikit berbeda. Sebuah
<span>
tag jauh lebih tepat.sumber
a
denganspan
, Anda harus ingat untuk membuatnya fokus melalui keyboard.Saya mencoba keduanya di google chrome dengan alat pengembang, dan
id="#"
butuh 0,32 detik. Sedangkanjavascript:void(0)
metode hanya butuh 0,18 detik. Jadi di google chrome,javascript:void(0)
bekerja lebih baik dan lebih cepat.sumber
Saya pada dasarnya mengutip dari artikel praktis ini menggunakan peningkatan progresif . Jawaban singkatnya adalah bahwa Anda tidak pernah menggunakan
javascript:void(0);
atau#
kecuali antarmuka pengguna Anda telah menyimpulkan bahwa JavaScript diaktifkan, dalam hal ini Anda harus menggunakanjavascript:void(0);
. Juga, jangan gunakan span sebagai tautan, karena itu semantik semula.Menggunakan rute URL SEO friendly di aplikasi Anda, seperti / Home / Action / Parameter adalah praktik yang baik juga. Jika Anda memiliki tautan ke halaman yang berfungsi tanpa JavaScript terlebih dahulu, Anda dapat meningkatkan pengalaman sesudahnya. Gunakan tautan asli ke halaman kerja, lalu tambahkan acara onlick untuk menyempurnakan presentasi.
Berikut ini contohnya. Beranda / ChangePicture adalah tautan yang berfungsi ke formulir pada halaman yang dilengkapi dengan antarmuka pengguna dan tombol kirim HTML standar, tetapi tampaknya lebih baik disuntikkan ke dalam dialog modal dengan tombol jQueryUI. Either way bekerja, tergantung pada browser, yang memuaskan pengembangan pertama mobile.
sumber