Adakah yang tahu cara menonaktifkan tautan di jquery TANPA menggunakan return false;
?
Secara khusus, apa yang saya coba lakukan adalah menonaktifkan tautan suatu item, melakukan klik padanya menggunakan jquery yang memicu beberapa hal, kemudian mengaktifkan kembali tautan itu sehingga jika diklik lagi itu berfungsi sebagai default.
Terima kasih. Dave
PEMBARUAN
Berikut kodenya. Yang perlu dilakukan setelah .expanded
kelas diterapkan adalah mengaktifkan kembali tautan yang dinonaktifkan.
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
Jawaban:
Itu akan mencegah perilaku default hyperlink, yaitu mengunjungi href yang ditentukan.
Dari tutorial jQuery :
Jika Anda ingin
preventDefault()
hanya jika kondisi tertentu terpenuhi (sesuatu disembunyikan misalnya), Anda dapat menguji visibilitas ul Anda dengan kelas diperluas . Jika terlihat (mis. Tidak disembunyikan) tautan harus menyala seperti biasa, karena pernyataan if tidak akan dimasukkan, dan dengan demikian perilaku default tidak akan dicegah:sumber
Coba ini:
EDIT-
Dari kode Anda yang diperbarui:
sumber
href="#"
Untuk yang lain yang datang ke sini via google seperti saya - berikut ini pendekatan lain:
Ingat: bukan hanya ini kelas css
tetapi juga dua ini
sehingga Anda dapat dengan mudah menambah dan menghapus kelas lebih lanjut dengan jQuery. Tidak perlu menyentuh href ...
Saya suka jQuery! ;-)
sumber
on()
untuk menyaring semuaa.disabled
tautan dan mencegah default. Maka yang harus Anda lakukan adalah mengaktifkan / menonaktifkan kelas yang dinonaktifkan dan tautannya akan menangani dirinya sendiri ketika "diaktifkan".if(disabledCondition)
== true
. :)if ($(this).hasClass('disabled')) { e.preventDefault(); }
?Berikut ini adalah solusi css / jQuery alternatif yang saya sukai untuk keseness dan skrip yang diperkecil:
css:
jQuery:
sumber
.prop("tabindex", "-1");
setelahaddClass
Anda dapat menghapus klik untuk tautan dengan mengikuti;
Anda dapat mengaktifkan kembali tautan dengan mengikuti,
Anda tidak dapat menggunakan properti 'dinonaktifkan' untuk tautan.
sumber
Jika Anda memilih rute href, Anda dapat menyimpannya
Untuk menonaktifkan:
Kemudian aktifkan kembali menggunakan:
Dalam satu kasus saya harus melakukannya dengan cara ini karena peristiwa klik sudah terikat di tempat lain dan saya tidak punya kendali atasnya.
sumber
Saya selalu menggunakan ini di jQuery untuk menonaktifkan tautan
sumber
$("form a").attr("disabled", false);
untuk mengaktifkannya kembalicontoh tautan html:
gunakan ini di jQuery
tambahkan ini ke css:
sumber
pointer-events: none
properti dari elemen jangkar mereka kembali melakukan apa pun yang mereka lakukan sebelumnya ketika diklik. Jadi jika mereka hyperlink dasar, mereka kembali ke menavigasi ke URL dihref
atribut mereka , dan jika mereka memiliki set event handler klik, itu menjadi aktif kembali. Jauh lebih sederhana daripada menyimpanhref
nilai dan penangan klik.My fav in "checkout untuk mengedit item dan mencegah -wild liar klik ke mana saja- saat dalam checkout" fungsi
Jadi, jika saya ingin semua tautan eksternal di toolbar tindakan kedua harus dinonaktifkan saat dalam "mode edit" seperti dijelaskan di atas, saya akan menambahkan fungsi edit
Tautan contoh setelah kebakaran:
Dan sekarang Anda BISA menggunakan properti yang dinonaktifkan untuk tautan
Bersulang!
sumber
Anda harus menemukan jawabannya di sini .
Terima kasih @Will dan @Matt untuk solusi elegan ini.
sumber
Anda bisa menyembunyikan dan menampilkan tautan sesuka Anda
sumber
Hanya memicu barang, mengatur beberapa bendera, mengembalikan false. Jika flag diatur - jangan lakukan apa-apa.
sumber
unbind()
sudah tidak digunakan lagijQuery 3
, gunakanoff()
metode ini:sumber
Saya tahu ini bukan dengan jQuery tetapi Anda dapat menonaktifkan tautan dengan beberapa css sederhana:
HTML akan terlihat seperti
sumber
Ini berfungsi untuk tautan yang memiliki atribut onclick yang ditetapkan inline. Ini juga memungkinkan Anda untuk menghapus "return false" di kemudian hari untuk mengaktifkannya.
sumber
Gunakan saja
$("a").prop("disabled", true);
. Ini benar-benar akan menonaktifkan elemen tautan. Perlu demikianprop("disabled", true)
. Jangan gunakanattr("disabled", true)
sumber