Saya mempunyai permainan kecil di mana apabila semua hati hilang, butang set semula akan muncul. Saya tidak boleh untuk seumur hidup saya memikirkan mengapa ia tidak muncul. Saya menulis semula 3 kali tertanya-tanya sama ada ini adalah cara saya menetapkan nilainya, tetapi tiada satu pun daripada mereka yang berfungsi. Apabila saya mengalih keluar pernyataan yang menyembunyikan butang, butang itu muncul, tetapi harus ada pernyataan pengesahan untuk membuatnya muncul semula.
const resetButton = document.getElementById('reset'); function reset() { location.reload(); } resetButton.addEventListener('click', reset); // Hide reset button until no hearts left function hideReset() { if (foodHeart1.src.match("images/emptyheart.png" && playHeart1.src.match("images/emptyheart.png"))) { resetButton.style.display = "visible"; } else { resetButton.style.display = "none"; } } hideReset();
Saya telah cuba mengalihkannya, meletakkannya di kawasan baru, tetapi tidak berjaya. Saya tidak tahu bagaimana lagi untuk menulis ini.
Apakah yang memanggil fungsi hideReset()? Jika ia tidak dipanggil dalam gelung kemas kini utama atau apabila berlaku perlanggaran, tiada apa yang akan sampai ke sana. Menggunakan imej untuk bertanya sama ada pemain mati adalah idea yang menarik, tetapi lebih cekap menggunakan pembolehubah sahaja.
Berikut ialah beberapa kod yang nampaknya melakukan perkara yang anda perlukan:
Saya tidak percaya ada style.display = "kelihatan", tetapi saya harap seseorang boleh membetulkan saya jika ini salah. (Lihat pantas di MDN. Saya telah menyediakannya sebaris di sini, tetapi anda boleh menggunakan sebarang nilai yang sesuai untuk memaparkan butang.
Saya juga menggunakan operator panjang pada fungsi padanan kerana ia mengembalikan tatasusunan (untuk pernyataan bersyarat anda).
Seperti yang James sebutkan dalam ulasan, fungsi hideReset() kemungkinan besar akan dipanggil apabila anda mengemas kini nilai jantung. Dalam kes ini saya meletakkannya ke dalam fungsi yang mengubah imej.
Terdapat banyak cara untuk memperbaiki perkara ini, tetapi saya harap ia membantu anda mengatasi kesukaran awal yang anda hadapi