Rumah > hujung hadapan web > tutorial js > Hentikan tindakan dengan jQuery .PreventDefault ()

Hentikan tindakan dengan jQuery .PreventDefault ()

Jennifer Aniston
Lepaskan: 2025-03-09 00:34:09
asal
770 orang telah melayarinya

Stop Actions with jQuery .preventDefault()

Oleh kerana operasi tidak dilaksanakan, kita perlu tahu apabila pengguna memulakan operasi dan boleh menggunakan

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);
});
Salin selepas log masuk

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;
});
Salin selepas log masuk

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');
    }
});
Salin selepas log masuk
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 objek acara untuk memeriksa sama ada acara itu boleh dibatalkan. 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan