رویدادها (Events)

وقتی کاربر کاری انجام میده (مثل کلیک کردن، نوشتن متن، حرکت ماوس و …)، رویداد (Event) اتفاق میفته.
جاوااسکریپت می‌تونه به این رویدادها گوش بده و واکنش نشون بده.

✅ رویدادهای پرکاربرد در HTML/JS

  • onclick → وقتی روی یک عنصر کلیک میشه.

  • onmouseover → وقتی ماوس روی عنصر میره.

  • onmouseout → وقتی ماوس از روی عنصر خارج میشه.

  • onkeydown → وقتی کلیدی روی کیبورد فشرده میشه.

  • onkeyup → وقتی کلید رها میشه.

  • onchange → وقتی مقدار یک input تغییر کنه.

  • onsubmit → وقتی فرم ارسال بشه.

  • onload → وقتی صفحه یا یک تصویر بارگذاری بشه.

✅ اضافه کردن رویداد (3 روش)

1) مستقیم داخل HTML

<button onclick="alert('سلام!')">کلیک کن</button>

2) با جاوااسکریپت (property)

<button id="btn">کلیک کن</button> <script> document.getElementById("btn").onclick = function() { alert("سلام از JS!"); }; </script>

3) استفاده از addEventListener (روش مدرن ✅)

<button id="btn">کلیک کن</button> <script> document.getElementById("btn").addEventListener("click", function() { alert("کلیک شد 🚀"); }); </script>

✅ نمونه‌های کاربردی

🔹 تغییر متن با کلیک

<p id="demo">سلام</p> <button onclick="changeText()">کلیک کن</button> <script> function changeText() { document.getElementById("demo").innerHTML = "متن تغییر کرد ✅"; } </script>

🔹 تغییر رنگ وقتی ماوس روی متن میره

<p id="hoverMe">ماوس رو بیار روی من</p> <script> let p = document.getElementById("hoverMe"); p.addEventListener("mouseover", function() { p.style.color = "red"; }); p.addEventListener("mouseout", function() { p.style.color = "black"; }); </script>

🔹 گرفتن مقدار input وقتی تغییر کرد

<input type="text" id="name" placeholder="اسمتو بنویس"> <p id="result"></p> <script> document.getElementById("name").addEventListener("change", function() { let val = this.value; document.getElementById("result").innerHTML = "سلام " + val; }); </script>

📌 خلاصه:

  • رویدادها کارهایی هستند که در مرورگر رخ میدن (کلیک، تایپ، اسکرول و …).

  • میشه با onclick، property JS یا addEventListener بهشون واکنش نشون داد.

  • addEventListener روش مدرن و بهترین راهه چون میشه چند تابع برای یک رویداد اضافه کرد.