Nima uchun "return false" ishlamaydi?
Nima uchun quyidagi kodda return false umuman ishlamaydi?
<script>
function handler() {
alert("...");
return false;
}
</script>
<a href="https://w3.org" onclick="handler()">brauzer w3.org saytiga o'tadi</a>
Brauzer bosish orqali URL manzilini kuzatib boradi, lekin biz buni xohlamaymiz.
Qanday tuzatish kerak?
onclick atributi va ishlov beruvchilar
Brauzer onclick kabi on* atributini o’qiganda, u uning mazmunidan ishlov beruvchi yaratadi.
onclick="handler()" uchun funksiya quyidagicha bo’ladi:
function(event) {
handler() // onclick ning mazmuni
}
Endi ko’rishimiz mumkinki, handler() tomonidan qaytarilgan qiymat ishlatilmaydi va natijaga ta’sir qilmaydi.
Tuzatish oddiy:
<script>
function handler() {
alert("...");
return false;
}
</script>
<a href="https://w3.org" onclick="return handler()">w3.org</a>
Shuningdek, biz event.preventDefault() dan foydalanishimiz mumkin:
<script>
function handler(event) {
alert("...");
event.preventDefault();
}
</script>
<a href="https://w3.org" onclick="handler(event)">w3.org</a>