Rumah >hujung hadapan web >tutorial js >Hentikan tindakan dengan jQuery .PreventDefault ()
untuk menentukan sama ada kaedah ini dicetuskan oleh panggilan pengendali acara. Ini boleh digunakan untuk mencetuskan panggilan fungsi. Ini juga berguna untuk menggunakan URL dinamik XHR dalam jQuery, seperti event.isDefaultPrevented()
bukan href="index.php?page=contact"
untuk mendapatkan halaman yang mengandungi modul. Anda juga mungkin ingin menyemak pilihan Mod Rewrite, yang juga menawarkan ciri ini dan faedah SEO. Fungsi acara JQuery Stop. Jika anda menggunakan contact.php
, sila ambil perhatian bahawa $(document).bind("keydown keypress", function(event)
tidak akan berfungsi, sila cuba e.preventDefault()
. Kadang -kadang anda mempunyai hiperpautan yang perlu menjadi hiperpautan, tetapi anda tidak mahu ia memproses dan membuka pautan, tetapi hanya mahu memanggil fungsi JavaScript. Nasib baik, terdapat fungsi dalam jQuery yang boleh menghentikan operasi hiperpautan. event.preventDefault()
jQuery pencegahanDefault () Contoh demonstrasi fungsi
Contoh 1: Blok dan Tangkap Klik Hyperlink
$("a").click(function(event) { event.preventDefault(); $('<div> <p>') .append('默认 ' + event.type + ' 已阻止') .appendTo('#log'); }); </p> <p> Contoh 2: Butang penyerahan borang blok <strong> </strong> </p> <pre class="brush:php;toolbar:false">$('#myform').submit(function(event) { event.preventDefault(); var self = this; window.setTimeout(function() { self.submit(); }, 2000); });
Contoh 3: Kelewatan sasaran hyperlink selepas kesan animasi
$("#ELEMENT_WHICH_AFFECT_THE_SLIDEUP") .click(function(event){ event.preventDefault(); // 阻止链接重定向 var time = 1000; // slideup 效果的时间 var url = $(this).attr("href"); // 选择用于通过 JavaScript 重定向的 URL $("#ELEMENT_TO_SLIDE_UP").slideUp(time); // 效果 window.setTimeout(function(){document.location.href=url;}, time); // 超时并在效果完成后等待 return -1; });
Contoh 4: Lumpuhkan butang tatal keyboard Down
$(document).keydown(function(event){ // 向下移动 if(event.keyCode == '40'){ event.preventDefault(); var posY = $('#'+selectedTxtID).css('top'); posY = parseFloat(posY); var newPosY = posY + 1; $('#'+selectedTxtID).css('top', newPosY+'px'); } });Fungsi ini boleh digunakan bukan sahaja untuk hiperpautan, tetapi juga untuk sebarang elemen dengan tindakan lalai yang anda ingin blok.
jQuery pencegahanDefault () kaedah FAQ (FAQ)
Apakah fungsi utama kaedah pencegahan JQuery ()?
Kaedah dalam jQuery digunakan terutamanya untuk mengelakkan operasi lalai peristiwa daripada berlaku. Sebagai contoh, jika anda mempunyai pautan di laman web anda dan anda tidak mahu ia mengarahkan ke halaman lain apabila diklik, anda boleh menggunakan kaedah preventDefault()
untuk menyekat tindakan lalai ini. Kaedah ini amat berguna apabila anda ingin mengawal operasi acara dalam kod anda, memberikan tahap interaktiviti yang lebih tinggi ke aplikasi web anda. preventDefault()
Bagaimana perbezaan antara kaedah pencegahanDefault () dan kaedah stoppropagation ()?
Walaupun kedua -dua kaedah digunakan untuk mengawal operasi acara, tujuannya berbeza. Kaedah menghalang peristiwa daripada berlaku, manakala kaedah preventDefault()
menghalang peristiwa dari bubbled di Dom Tree, menghalang mana -mana pengendali induk daripada menerima pemberitahuan peristiwa. Dalam erti kata lain, stopPropagation()
mengendalikan tingkah laku lalai elemen, manakala preventDefault()
mengendalikan aliran peristiwa dalam hierarki DOM. stopPropagation()
Bolehkah saya menggunakan kaedah pencegahanDefault () dengan semua peristiwa?
tidak, preventDefault()
kaedah tidak boleh digunakan dengan semua peristiwa. Ia hanya berfungsi dengan peristiwa dengan tindakan lalai untuk menyekat. Sebagai contoh, ia boleh digunakan dengan acara "klik" yang ditandakan untuk mengelakkan tindakan lalai menavigasi ke URL baru. Walau bagaimanapun, ia tidak boleh digunakan dengan peristiwa tersuai tanpa tindakan lalai.
Bagaimana untuk memeriksa sama ada kaedah pencegahanDefault () telah dipanggil untuk acara itu?
anda boleh menggunakan kaedah isDefaultPrevented()
untuk memeriksa sama ada preventDefault()
dipanggil pada acara tersebut. Kaedah ini mengembalikan nilai boolean -true jika preventDefault()
dipanggil, jika tidak palsu.
Bolehkah saya menggunakan kaedah pencegahanDefault () di Internet Explorer?
Ya, anda boleh menggunakan kaedah preventDefault()
di Internet Explorer. Walau bagaimanapun, versi lama Internet Explorer (IE8 dan ke bawah) tidak menyokong kaedah ini. Untuk versi ini, anda boleh menggunakan sifat returnValue
objek acara untuk mencapai kesan yang sama.
Apa yang berlaku jika saya panggil pencegahanDefault () pada acara yang tidak dapat ditemui?
Jika anda memanggil preventDefault()
pada peristiwa yang tidak dapat ditemui, kaedah ini tidak sah. Acara yang tidak dapat ditemui merujuk kepada peristiwa yang tidak dapat disekat oleh operasi lalainya. Anda boleh menggunakan harta cancelable
Bolehkah saya memanggil pencegahanDefault () beberapa kali untuk acara yang sama?
Ya, anda boleh memanggil beberapa kali untuk acara yang sama, tetapi ia tidak akan mempunyai kesan tambahan. Sebaik sahaja tindakan lalai acara disekat, panggilan preventDefault()
sekali lagi tidak akan mengubah apa -apa. preventDefault()
Bolehkah saya menggunakan pencegahanDefault () dengan peristiwa papan kekunci?
Ya, anda boleh menggunakan dengan peristiwa papan kekunci. Sebagai contoh, anda boleh menyekat tindakan lalai acara "Keydown" untuk mengelakkan aksara memasuki medan teks. preventDefault()
Bagaimana menggunakan pencegahanDefault () dalam pernyataan bersyarat?
anda boleh menggunakan dalam pernyataan bersyarat untuk mengawal apabila peristiwa harus disekat. Sebagai contoh, jika beberapa pemeriksaan pengesahan gagal, anda boleh menghalang penyerahan borang. preventDefault()
Bolehkah saya menggunakan pencegahanDefault () dengan peristiwa sentuhan?
Ya, anda boleh menggunakan dengan peristiwa sentuhan. Sebagai contoh, anda boleh menyekat tindakan lalai acara "TouchStart" untuk mengelakkan pengiktirafan gerak isyarat sentuhan. preventDefault()
Atas ialah kandungan terperinci Hentikan tindakan dengan jQuery .PreventDefault (). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!