Rumah > hujung hadapan web > tutorial js > Mengapa Pengendali Acara onclick `` Saya Gagal dalam IE8, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Pengendali Acara onclick `` Saya Gagal dalam IE8, dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Lepaskan: 2024-11-28 07:11:10
asal
801 orang telah melayarinya

Why Do My `` onclick Event Handlers Fail in IE8, and How Can I Fix Them?

Isu Pendengar Acara "Onclick" IE8 dengan

  • Teg

    Apabila menggunakan kod JavaScript yang disediakan dalam IE8, pengendali acara "onclick" untuk

  • elemen mungkin tidak berfungsi seperti yang diharapkan. Isu ini berpunca daripada kekurangan sokongan untuk kaedah "addEventListener" dalam IE8 dan versi sebelumnya penyemak imbas.

    Penyelesaian:

    Untuk menyelesaikan isu ini, penyelesaian yang melibatkan pendahulu bukan standard untuk "addEventListener" dalam IE8, iaitu "attachEvent," boleh digunakan. Berikut ialah versi kod JavaScript yang diubah suai yang menggunakan kaedah ini:

    hookEvent(document.getElementById("hd_vertical"), "click", function(e) {
            if(e.target.nodeName == "LI") { 
                var _anchor = e.target.id;
                changeLocation(_anchor);
            } else if(e.target.nodeName == "SPAN") {
                var span = e.target;
                var li = span.parentNode;
                var _anchor = li.id;   
                changeLocation(_anchor);
        }
    });
    Salin selepas log masuk

    Begini cara kod ini berfungsi:

    • hookEvent: Fungsi ini menyemak untuk ketersediaan "addEventListener" atau "attachEvent" dan menggunakan versi yang sesuai untuk masing-masing pelayar.
    • OldIEHookEvent: Fungsi ini melampirkan pengendali acara pada elemen menggunakan "attachEvent" dalam IE8 dan penyemak imbas terdahulu. Ia juga mengisi polifungsi yang tiada seperti "preventDefault" dan "stopPropagation."

    Nota: IE8 juga tidak mempunyai sokongan untuk "getElementsByClassName." Pertimbangkan untuk menggunakan "querySelector" atau "querySelectorAll" sebaliknya:

    var _url = document.querySelector("." + id).getAttribute('href');
    Salin selepas log masuk

    Dengan melaksanakan perubahan ini, pengendali acara "onclick" untuk

  • elemen kini seharusnya berfungsi dengan betul dalam IE8.

    Atas ialah kandungan terperinci Mengapa Pengendali Acara onclick `` Saya Gagal dalam IE8, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

  • sumber:php.cn
    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
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan