ÛÚ© رÙÛØ¯Ø§Ø¯ ÙØ´Ø§ÙÙâØ§Û Ø§Ø² ÚÛØ²Û است Ú©Ù Ø§ØªÙØ§Ù Ø§ÙØªØ§Ø¯Ù است. ÙÙ ÙâÛ Ø¹ÙØ§ØµØ± درخت DOM اÛÙ ÙØ´Ø§ÙÙâÙØ§ را تÙÙÛØ¯ Ù ÛâÚ©ÙÙØ¯ (ا٠ا رÙÛØ¯Ø§Ø¯Ùا Ù ØØ¯Ùد ب٠درخت DOM ÙÛØ³ØªÙد).
در اÛÙØ¬Ø§ ØµØ±ÙØ§ Ø¨Ø±Ø§Û Ø¢Ø´ÙØ§ÛÛ Ø§ÙÙÛÙØ ÙÛØ³ØªÛ از پرکاربردترÛ٠رÙÛØ¯Ø§Ø¯ÙØ§Û DOM Ø§ÙØ±Ø¯Ù شدÙ:
رÙÛØ¯Ø§Ø¯ÙØ§Û Ù ÙØ³:
clickâ Ø²Ù اÙÛ Ú©Ù Ù ÙØ³ رÙÛ ÛÚ© Ø¹ÙØµØ± Ú©ÙÛÚ© Ù ÛâÚ©ÙØ¯ (دستگاÙâÙØ§Û ÙÙ Ø³Û Ø§Û٠رÙÛØ¯Ø§Ø¯Ùا ÙÙÚ¯Ø§Ù Ø¶Ø±Ø¨Ù Ø²Ø¯Ù Ø§ÛØ¬Ø§Ø¯ Ù ÛâÚ©ÙÙØ¯).contextmenuâ Ø²Ù اÙÛ Ú©Ù Ù ÙØ³ رÙÛ ÛÚ© Ø¹ÙØµØ± راستâÚ©ÙÛÚ© Ù ÛâÚ©ÙØ¯.mouseover/mouseoutâ Ø²Ù اÙÛ Ú©Ù Ø§Ø´Ø§Ø±Ùâگر Ù ÙØ³ رÙÛ/Ø¨ÛØ±ÙÙ ÛÚ© Ø¹ÙØµØ± Ù ÛâØ±ÙØ¯â¦mousedown/mouseupâ Ø²Ù اÙÛ Ú©Ù Ú©ÙÛØ¯ Ù ÙØ³ رÙÛ Ø¹ÙØµØ± ÙØ´Ø±Ø¯Ù/Ø±ÙØ§ Ù ÛâØ´ÙØ¯.mousemoveâ Ø²Ù اÙÛ Ú©Ù Ø§Ø´Ø§Ø±Ùâگر Ù ÙØ³ ØØ±Ú©Øª Ù ÛâÚ©ÙØ¯.
رÙÛØ¯Ø§Ø¯ÙØ§Û ØµÙØÙâÚ©ÙÛØ¯:
keydownÙkeyupâ Ø²Ù اÙÛ Ú©Ù ÛÚ© Ú©ÙÛØ¯ از ØµÙØÙâÚ©ÙÛØ¯ ÙØ´Ø±Ø¯Ù/Ø±ÙØ§ Ù ÛâØ´ÙØ¯.
رÙÛØ¯Ø§Ø¯ÙØ§Û Ø¹ÙØ§ØµØ± form:
submitâ Ø²Ù اÙÛ Ú©Ù Ø¨Ø§Ø²Ø¯ÛØ¯Ú©ÙÙØ¯Ù ÛÚ©<form>را ثبت Ù ÛâÚ©ÙØ¯.focusâ Ø²Ù اÙÛ Ø¨Ø§Ø²Ø¯ÛØ¯Ú©ÙÙØ¯Ù رÙÛ ÛÚ© Ø¹ÙØµØ± ت٠رکز Ú©ÙØ¯, Ø¨Ø±Ø§Û Ù Ø«Ø§Ù ÛÚ©<input>.
رÙÛØ¯Ø§Ø¯ÙØ§Û :
DOMContentLoadedâ Ø²Ù اÙÛ Ú©Ù Ø³ÙØ¯ HTML ÙÙØ¯ ٠پردازش Ø´ÙØ¯Ø ÙÙ ÚÙÛ٠درخت DOM ÙÛØ² Ú©Ø§Ù ÙØ§ تشکÛ٠شد٠است.
رÙÛØ¯Ø§Ø¯ÙØ§Û CSS:
transitionendâ Ø²Ù اÙÛ Ú©Ù ÛÚ© اÙÛÙ ÛØ´Ù CSS ت٠ا٠٠ÛâØ´ÙØ¯.
رÙÛØ¯Ø§Ø¯ÙØ§Û Ù ØªØ¹Ø¯Ø¯ دÛÚ¯Ø±Û ÙÛØ² ÙØ¬Ùد دارد. Ø¯Ø±Ø¨Ø§Ø±Ù Ø¬Ø²Ø¦ÛØ§Øª Ù Ø®ØµÙØµ Ø¨Ù ÙØ±Ú©Ø¯Ø§Ù از رÙÛØ¯Ø§Ø¯Ùا در بخشâÙØ§Û Ø¨Ø¹Ø¯Û ØµØØ¨Øª Ù ÛâÚ©ÙÛÙ .
Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§Û رÙÛØ¯Ø§Ø¯Ùا
Ø¨Ø±Ø§Û ÙØ§Ú©ÙØ´ ب٠اÛ٠رÙÛØ¯Ø§Ø¯âÙØ§ Ø¨Ø§ÛØ¯ ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ب٠آ٠اختصاص دÙÛÙ â ÛÚ© تابع ک٠در Ø²Ù Ø§Ù Ø§ØªÙØ§Ù Ø§ÙØªØ§Ø¯Ù ÛÚ© رÙÛØ¯Ø§Ø¯ اجرا Ù ÛâØ´ÙØ¯.
Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ ÛÚ© Ø±ÙØ´ Ø¨Ø±Ø§Û Ø§Ø¬Ø±Ø§Û Ú©Ø¯ÙØ§Û JavaScript در Ø¬ÙØ§Ø¨ Ø¨Ù Ø±ÙØªØ§Ø±ÙØ§Û Ú©Ø§Ø±Ø¨Ø± ÙØ³ØªÙد.
ÚÙØ¯ÛÙ Ø±Ø§Ù Ø¨Ø±Ø§Û Ø§Ø®ØªØµØ§Øµ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ ÙØ¬Ùد دارد. Ø¨Ø±Ø§Û Ø¢Ø´ÙØ§ شد٠با Ø¢ÙÙØ§Ø از سادÙâØªØ±ÛÙ Ø±ÙØ´ Ø´Ø±ÙØ¹ Ù ÛâÚ©ÙÛÙ .
ØµÙØª HTML
ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù Ù
ÛâØªÙØ§Ùد درÙÙ HTML با ÛÚ© ØµÙØªÛ Ø¨Ù ÙØ§Ù
on<event> تعرÛÙ Ø´ÙØ¯.
Ø¨Ø±Ø§Û Ù
ثا٠اگر Ø¨Ø®ÙØ§ÙÛÙ
ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù click Ø¨Ø±Ø§Û ÛÚ© input اختصاص دÙÛÙ
Ø Ù
شاب٠Ù
Ø«Ø§Ù Ø²ÛØ± از onclick Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛÙ
:
<input value="رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù" onclick="alert('Ú©ÙÛÚ©!')" type="button">
در زÙ
ا٠کÙÛÚ© Ù
ÙØ³Ø Ú©Ø¯Û Ú©Ù Ø¯Ø§Ø®Ù onclick است اجرا Ø®ÙØ§Ùد شد.
ØªÙØ¬Ù Ú©ÙÛØ¯ ک٠داخ٠onclick Ù
ا از سÛÙÚ¯Ù Ú©ÙØªÛØ´Ù Ø§Ø³ØªÙØ§Ø¯Ù کردÛÙ
Ø ÚÙÙ Ú©Ù Ø®ÙØ¯ ØµÙØª درÙÙ ÛÚ© دابÙâÚ©ÙØªÛش٠تعرÛ٠شدÙ. اگر ÙØ±Ø§Ù
ÙØ´ Ú©ÙÛÙ
ک٠کد داخ٠ÛÚ© ØµÙØª است ٠از دابÙâÚ©ÙØªÛØ´Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
Ø Ù
ث٠اÛÙ: onclick="alert("Ú©ÙÛÚ©!")"Ø Ú©Ø¯ Ù
ا کار ÙØ®ÙØ§ÙØ¯ کرد.
ØµÙØª HTML Ø¬Ø§Û Ø¢ÙÚÙØ§Ù Ù ÙØ§Ø³Ø¨Û Ø¨Ø±Ø§Û ÙÙØ´ØªÙ کدâÙØ§Û Ø·ÙÙØ§ÙÛ ÙÛØ³Øª. پس Ø¨ÙØªØ± است ÛÚ© تابع Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ø§ÛØ¬Ø§Ø¯ Ú©ÙÛ٠٠درÙ٠اÛÙ ØµÙØª Ø¢ÙØ±Ø§ صدا بزÙÛÙ .
اÛÙØ¬Ø§ ÛÚ© Ú©ÙÛÚ©Ø ØªØ§Ø¨Ø¹ countRabbits() را ÙØ±Ø§Ø®ÙاÙÛ Ù
ÛâÚ©ÙØ¯:
<script>
function countRabbits() {
for(let i=1; i<=3; i++) {
alert("تعداد Ø®Ø±Ú¯ÙØ´ " + i);
}
}
</script>
<input type="button" onclick="countRabbits()" value="Ø®Ø±Ú¯ÙØ´âÙØ§ را بشÙ
ار!">
ÙÙ
Ø§ÙØ·Ùر Ú©Ù Ù
ÛâØ¯Ø§ÙÛÙ
Ø ØµÙØªâÙØ§Û HTML Ø¨Ù Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ØØ±ÙÙ (case-sensitive) ÙØ§Ø¨Ø³ØªÙ ÙÛØ³ØªÙØ¯Ø Ù¾Ø³ âONCLICK Ù
اÙÙØ¯ onClick Ù onCLICK کار Ù
ÛâÚ©ÙØ¯ ⦠اÙ
ا Ù
عÙ
ÙÙØ§ ØµÙØªâÙØ§ با ØØ±ÙÙ Ú©ÙÚÚ© ÙÙØ´ØªÙ Ù
ÛâØ´ÙÙØ¯Ø Ù
اÙÙØ¯: onclick.
Ø®Ø§ØµÛØª DOM
Ù
ا با Ø§Ø³ØªÙØ§Ø¯Ù از ÛÚ© Ø®Ø§ØµÛØª DOM Ø¨Ù ÙØ§Ù
on<event> Ù
ÛâØªÙØ§ÙÛÙ
ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù تعرÛÙ Ú©ÙÛÙ
.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ elem.onclick:
<input id="elem" type="button" value="رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù">
<script>
elem.onclick = function() {
alert('Ù
Ù
ÙÙÙÙ
');
};
</script>
اگر Ú©Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ØªÙØ³Ø· ÛÚ© ØµÙØª HTML تعرÛÙâØ´Ø¯Ù Ø¨Ø§Ø´Ø¯Ø Ù Ø±ÙØ±Ú¯Ø± Ø¢ÙØ±Ø§ Ù ÛâØ®ÙØ§Ùد Ù ÛÚ© تابع Ø¬Ø¯ÛØ¯ از Ù ÙØ¯Ø§Ø± Ø¢Ù ØµÙØª Ø§ÛØ¬Ø§Ø¯ Ù ÛâÚ©ÙØ¯ Ù Ø¢ÙØ±Ø§ Ø¨Ù Ø®Ø§ØµÛØª Ù ØªÙØ§Ø¸Ø± DOM اختصاص Ù ÛâØ¯ÙØ¯.
پس اÛÙ Ø±ÙØ´ Ø¯Ø±ÙØ§Ùع شبÛÙ Ø±ÙØ´ ÙØ¨ÙÛ Ø§Ø³Øª.
اÛÙ Ø¯Ù ÙØ·Ø¹Ù کد Ù٠اÙÙØ¯ Ù٠ع٠٠٠ÛâÚ©ÙÙØ¯:
-
Only HTML:
<input type="button" onclick="alert('Ú©ÙÛÚ©!')" value="دک٠Ù"> -
HTML + JS:
<input type="button" id="button" value="دک٠Ù"> <script> button.onclick = function() { alert('Ú©ÙÛÚ©!'); }; </script>
در Ù
ثا٠اÙÙÛØ Ù
ا از ØµÙØª HTML Ø¨Ø±Ø§Û Ù
ÙØ¯Ø§Ø± دÙÛ Ø¨Ù button.onclick Ø§Ø³ØªÙØ§Ø¯Ù کردÛÙ
Ø Ø¯Ø±ØµÙØ±ØªÛ ک٠در Ù
ثا٠دÙÙ
Ø Ø§Û٠کار با کد Ø§ÙØ¬Ø§Ù
شدÙ. تÙÙØ§ ØªÙØ§Ùتشا٠ÙÙ
Û٠است.
از Ø¢ÙØ¬Ø§ÛÛ Ú©Ù ÙÙØ· ÛÚ© Ø®Ø§ØµÛØª onclick رÙÛ Ø¹ÙØµØ± ÙØ¬Ùد Ø¯Ø§Ø±Ø¯Ø ÙÙ
ÛâØªÙØ§ÙÛÙ
Ø¨ÛØ´ØªØ± از ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ùâ Ø¨Ø±Ø§Û اÛ٠رÙÛØ¯Ø§Ø¯ تعرÛÙ Ú©ÙÛÙ
.
در Ù Ø«Ø§Ù Ø²ÛØ±Ø ÙÙØªÛ Ú©Ù ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ØªÙØ³Ø· Ø¬Ø§ÙØ§Ø³Ú©Ø±Ûپت Ø¨Ù Ø¹ÙØµØ± اختصاص Ù ÛâØ¯ÙÛÙ Ø Ù ÛâØ¨ÛÙÛ٠ک٠جاÛگزÛÙ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ÙØ¨ÙÛ Ù ÛâØ´ÙØ¯.
<input type="button" id="elem" onclick="alert('ÙØ¨Ù')" value="رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù">
<script>
elem.onclick = function() { // Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ÙØ¹ÙÛ Ø±Ø§ رÙÙÙÛØ³Û Ù
ÛâÚ©ÙØ¯
alert('بعد'); // ÙÙØ· اÛÙ Ù¾ÛØ§Ù
ÙÙ
Ø§ÛØ´ داد٠Ù
ÛâØ´ÙØ¯
};
</script>
Ø¨Ø±Ø§Û Ø¨Ø±Ø¯Ø§Ø´ØªÙ ÛØ§ ØØ°Ù ÛÚ© Ú©ÙØªØ±Ù Ú©ÙÙØ¯ÙØ Ù
ÛâØªÙØ§ÙÛÙ
از elem.onclick = null Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
.
Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ø¹ÙØµØ±: this
Ù
ÙØ¯Ø§Ø± this داخ٠ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù Ø®ÙØ¯ Ø¹ÙØµØ± است. Ø¹ÙØµØ±Û Ú©Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù رÙÛ Ø¢Ù ØªØ¹Ø±Û٠شدÙ.
در کد Ø²ÛØ± button Ù
ØØªÙÛØ§Øª Ø®ÙØ¯ را با this.innerHTML ÙÙ
Ø§ÛØ´ Ù
ÛâØ¯ÙØ¯:
<button onclick="alert(this.innerHTML)">رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù</button>
Ø§Ø´ØªØ¨Ø§ÙØ§Øª Ø§ØØªÙ اÙÛ
اگر Ú©Ù Ø¨Ù ØªØ§Ø²Ú¯Û Ù ÛâØ®ÙØ§ÙÛØ¯ با رÙÛØ¯Ø§Ø¯Ùا کار Ú©ÙÛØ¯Ø ب٠اÛÙ Ùکات Ù ÙÙ ØªÙØ¬Ù Ú©ÙÛØ¯.
٠ا Ù ÛâØªÙØ§ÙÛÙ ØªØ§Ø¨Ø¹Û Ú©Ù Ø§Ø² ÙØ¨Ù تعرÛÙ Ø´Ø¯Ù Ù ÙØ¬Ùد دارد را ب٠عÙÙØ§Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ .
function sayThanks() {
alert('Ù
Ù
ÙÙÙÙ
!');
}
elem.onclick = sayThanks;
اÙ
ا Ù
Ø±Ø§ÙØ¨ Ø¨Ø§Ø´ÛØ¯: تابع Ø¨Ø§ÛØ¯ Ø¨Ù ØµÙØ±Øª sayThanks Ø¨Ù Ø®Ø§ØµÛØª DOM اختصاص ÛØ§Ø¨Ø¯Ø ÙÙ Ø¨Ù ØµÙØ±Øª sayThanks().
// درست
button.onclick = sayThanks;
// اشتباÙ
button.onclick = sayThanks();
اگر Ú©Ù Ù
ا Ù¾Ø±Ø§ÙØªØ²Ùا را اضاÙÙ Ú©ÙÛÙ
تابع sayThanks() صدا زد٠Ù
ÛâØ´ÙØ¯. پس Ù
ÙØ±Ø¯ دÙÙ
Ø¯Ø±ÙØ§Ùع Ø®Ø±ÙØ¬Û ØØ§ØµÙ از Ø§Ø¬Ø±Ø§Û ØªØ§Ø¨Ø¹ Ø±Ø§Ø Ú©Ù undefined است (ÚÙ٠تابع ÚÛØ²Û را باز ÙÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯)Ø Ø¨Ù Ø¹ÙÙØ§Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ب٠onclick اختصاص Ù
ÛâØ¯ÙØ¯Ø Ú©Ù ÙØ§Ø¹Ø¯ØªØ§ کار ÙÙ
ÛâÚ©ÙØ¯.
â¦Ø§Ø² سÙÛ Ø¯ÛÚ¯Ø±Ø Ù Ø§ در کد HTML Ø¨Ù Ù¾Ø±Ø§ÙØªØ² ÙØ§ ÙÛØ§Ø² دارÛÙ :
<input type="button" id="button" onclick="sayThanks()">
ØªÙØ¶ÛØ Ù ØªÙØ¬Û٠اÛÙ ØªÙØ§Ùت آسا٠است. ز٠اÙÛ Ú©Ù Ù Ø±ÙØ±Ú¯Ø± Ù ÙØ¯Ø§Ø± ØµÙØª را Ù ÛâØ®ÙØ§ÙØ¯Ø ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù با بدÙÙââØ§Û Ø´Ø§Ù Ù Ù ØØªÙÛØ§Øª Ø¢Ù ØµÙØª Ù ÛâØ³Ø§Ø²Ø¯.
پس ÚÛØ²Û شبÛ٠اÛÙ Ø®Ø§ØµÛØª Ø§ÛØ¬Ø§Ø¯ Ù ÛâØ´ÙØ¯:
button.onclick = function() {
sayThanks(); // <-- Ù
ØØªÙÛØ§Øª ØµÙØª اÛÙØ¬Ø§ ÙØ±Ø§Ø± Ù
ÛâÚ¯ÛØ±Ø¯
};
Ø¨Ø±Ø§Û Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ از setAttribute Ø§Ø³ØªÙØ§Ø¯Ù ÙÚ©ÙÛØ¯.
اÛÙ ÚÙÛÙ ÙØ±Ø§Ø®ÙاÙÛâØ§Û Ú©Ø§Ø± ÙØ®ÙØ§ÙØ¯ کرد:
// ÛÚ© Ú©ÙÛÚ© رÙÛ <body> باعث Ø¨Ø±ÙØ² خطا Ù
ÛâØ´ÙØ¯Ø
// ÚÙÙ Ú©Ù ØµÙØªâÙØ§ ÙÙ
ÛØ´Ù Ø±Ø´ØªÙ ÙØ³ØªÙØ¯Ø Ù ØªØ§Ø¨Ø¹ تبدÛ٠ب٠رشت٠Ù
ÛâØ´ÙØ¯
document.body.setAttribute('onclick', function() { alert(1) });
Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ØØ±ÙÙ Ø¨Ø±Ø§Û Ø®Ø§ØµÛØªâÙØ§Û DOM اÙÙ ÛØªâدارد.
Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ùâ âØ±Ø§ ب٠elem.onclick اختصاص دÙÛØ¯Ø Ù٠ب٠elem.ONCLICKØ ÚÙÙÚ©Ù Ø®ØµÙØµÛات Ø¹ÙØ§ØµØ± DOM Ø¨Ù Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ØØ±ÙÙ ØØ³Ø§Ø³ ÙØ³ØªÙد.
addEventListener
Ù Ø´Ú©Ù Ø§Ø³Ø§Ø³Û Ø¨Ø§ Ø±ÙØ´âÙØ§ÛÛ Ú©Ù Ø¯Ø± Ø¨Ø§ÙØ§ دربار٠تعرÛ٠٠اختصاص Ø¯Ø§Ø¯Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ Ú¯ÙØªÙ Ø´Ø¯Ø Ø§Û٠است Ú©Ù ÙÙ ÛâØªÙØ§ÙÛÙ ÚÙØ¯ Ú¯ÙØªØ±ÙâÚ©ÙÙØ¯Ùâ Ø±Ø§ ب٠ÛÚ© رÙÛØ¯Ø§Ø¯ اختصاص دÙÛÙ .
ÙØ±Ø¶ Ú©ÙÛÙ Ú©Ù ÛÚ© ÙØ³Ù ت از کد Ù ÛâØ®ÙØ§Ùد ک٠دک٠ÙâØ§Û Ø±Ø§ ÙÙگا٠کÙÛÚ© Ø´Ø¯ÙØ ÙØ§ÛÙØ§Ûت Ú©ÙØ¯Ø ٠کد دÛÚ¯Ø±Û Ú©Ù Ù ÛâØ®ÙØ§Ùد در ز٠ا٠Ù٠ا٠کÙÛÚ© Ù¾ÛØºØ§Ù Û Ø±Ø§ ÙÙ Ø§ÛØ´ Ø¯ÙØ¯.
٠ع٠ÙÙØ§ Ù ÛâØ®ÙØ§ÙÛÙ Ú©Ù Ø¯Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù Ø¨Ø±Ø§Û Ø¢Ù ØªØ¹Ø±ÛÙ Ú©ÙÛÙ . ÙÙÛ Ù ÛâØ¯Ø§ÙÛÙ Ú©Ù Ù ÙØ¯Ø§Ø±Ø¯ÙÛ Ø®Ø§ØµÛØª DOM Ù ÙØ¯Ø§Ø± ÙØ¨ÙÛ Ø±Ø§ رÙÙÙÛØ³Û Ù ÛâÚ©ÙØ¯:
input.onclick = function() { alert(1); }
// ...
input.onclick = function() { alert(2); } // جاÛگزÛÙ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ÙØ¨ÙÛ Ù
ÛâØ´ÙØ¯
ØªÙØ³Ø¹ÙâØ¯ÙÙØ¯Ú¯Ø§Ù Ø§Ø³ØªØ§ÙØ¯Ø§Ø±ÙØ§Û ÙØ¨ Ø®ÛÙÛ ÙÙØª Ù¾ÛØ´ Ù
ØªÙØ¬Ù اÛÙ Ù
ÙØ¶Ùع Ø´Ø¯ÙØ¯ Ù ÛÚ© را٠ØÙ جاÛگزÛÙ Ø¨Ø±Ø§Û Ù
Ø¯ÛØ±Ûت Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙââÙØ§ با Ø§Ø³ØªÙØ§Ø¯Ù از Ù
تدâÙØ§Û Ù
Ø®ØµÙØµ addEventListener Ù removeEventListener Ù¾ÛØ´ÙÙØ§Ø¯ Ø¯Ø§Ø¯ÙØ¯. اÛ٠د٠Ù
تد Ù
Ø´Ú©Ù Ø¨Ø§ÙØ§ را ÙØ®ÙاÙÙØ¯ داشت.
سÛÙØªÚ©Ø³ Ù ÚÚ¯ÙÙÚ¯Û Ø§Ø¶Ø§Ù٠کرد٠ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù:
element.addEventListener(event, handler, [options]);
event- ÙØ§Ù
رÙÛØ¯Ø§Ø¯, Ø¨Ø±Ø§Û Ù
ثاÙ
"click". handler- تابع Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù.
options- ÛÚ© شئ ب٠عÙÙØ§Ù ÙØ±ÙØ¯Û Ø§Ø®ØªÛØ§Ø±Û با Ø®ØµÙØµÛات Ø²ÛØ±:
once: اگرtrueباشد, Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù بعد از اÙÙÛ٠اجرا از رÙÛ Ø¹ÙØµØ± ØØ°Ù Ù ÛâØ´ÙØ¯.capture: ٠رØÙÙâØ§Û Ú©Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù در آ٠ع٠٠٠ÛâÚ©ÙØ¯, در اÛÙ Ù ÙØ±Ø¯ در ÙØ³Ù ت Ø¨Ø§ÙØ§Ø±ÙØªÙ Ù Ú¯Ø±ÙØªÙ ØµØ¨ØØª Ù ÛâØ´ÙØ¯. Ø¨Ù Ø¯ÙØ§ÛÙÛ,optionsÙ ÛâØªÙØ§Ùدfalse/trueباشد, ک٠٠شاب٠Ù٠اÙ{capture: false/true}Ø®ÙØ§Ùد Ø¨ÙØ¯.passive: اگرtrueباشد, Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù تابعpreventDefault()را صدا ÙØ®ÙØ§ÙØ¯ Ø²Ø¯Ø Ø¯Ø±Ø¨Ø§Ø±Ù Ø§ÛÙ Ù ÙØ¶Ùع بعدا در ÙØ³Ù ت اکشÙâÙØ§Û Ù¾ÛØ´Ùرض Ù Ø±ÙØ±Ú¯Ø± ØµØØ¨Øª Ø®ÙØ§ÙÛ٠کرد.
Ø¨Ø±Ø§Û ØØ°Ù ÛÚ© Ú©ÙØªØ±Ù Ú©ÙÙØ¯Ù از removeEventListenerâ Ø§Ø³ØªÙاد٠Ù
ÛâÚ©ÙÛÙ
:
element.removeEventListener(event, handler, [options]);
Ø¨Ø±Ø§Û ØØ°Ù ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ٠ا Ø¨Ø§ÛØ¯ دÙÛÙØ§ ÙÙ Ø§Ù ØªØ§Ø¨Ø¹Û Ú©Ù Ø¨Ù Ø¹ÙÙØ§Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù اختصاص Ø¯Ø§Ø¯Ù Ø¨ÙØ¯Û٠را ب٠تابع بدÙÛÙ .
کد Ø²ÛØ± کار ÙÙ ÛâÚ©ÙØ¯:
elem.addEventListener( "click" , () => alert('Ù
Ù
ÙÙÙÙ
!'));
// ....
elem.removeEventListener( "click", () => alert('Ù
Ù
ÙÙÙÙ
!'));
Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ØØ°Ù ÙÙ
ÛâØ´ÙØ¯Ø ÚÙÙÚ©Ù removeEventListener تابع دÛÚ¯Ø±Û Ø¯Ø±ÛØ§Ùت کردÙ. درست است Ú©Ù Ú©Ø¯ÙØ§Û Ø¢ÙÙØ§ Ù
Ø´Ø§Ø¨Ù Ø§Ø³ØªØ Ø§Ù
ا Ù
ÙÙ
ÙÛØ³ØªØ ÚØ±Ø§ Ú©Ù ÛÚ© Ø´Ø¦âØªØ§Ø¨Ø¹ Ù
ØªÙØ§Ùت است.
اÛÙ Ø±ÙØ´ درست است:
function handler() {
alert( 'Ù
Ù
ÙÙÙ!' );
}
input.addEventListener("click", handler);
// ....
input.removeEventListener("click", handler);
ØªÙØ¬Ù Ú©ÙÛØ¯Ø اگر Ú©Ù Ù
ا تابع Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâØ±Ø§ درÙÙ ÛÚ© Ù
ØªØºÛØ± Ø°Ø®ÛØ±Ù ÙÚ©ÙÛÙ
Ø ÙÙ
ÛâØªÙØ§ÙÛÙ
Ø¢ÙØ±Ø§ ØØ°Ù Ú©ÙÛÙ
. راÙÛ Ø¨Ø±Ø§Û âØ¨Ø§Ø²Ø®ÙØ§ÙÛâ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ÛÛ Ú©Ù Ø¨Ø§ addEventListener اختصاص دادÙâ Ù
ÛâØ´ÙÙØ¯ ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.
با ÚÙØ¯ بار صدا زد٠addEventListener Ù
ÛâØªÙØ§ÙÛÙ
ÚÙØ¯ÛÙ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù اضاÙÙ Ú©ÙÛÙ
Ù
اÙÙØ¯ اÛÙ:
<input id="elem" type="button" value="رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù"/>
<script>
function handler1() {
alert('Ù
Ù
ÙÙÙÙ
!');
};
function handler2() {
alert('باز ÙÙ
Ù
Ù
ÙÙÙÙ
!');
}
elem.onclick = () => alert("Hello");
elem.addEventListener("click", handler1); // Ù
Ù
ÙÙÙÙ
!
elem.addEventListener("click", handler2); // باز ÙÙ
Ù
Ù
ÙÙÙÙ
!
</script>
ÙÙ
Ø§ÙØ·Ùر ک٠در Ù
ثاÙâÙØ§Û Ø¨Ø§ÙØ§ Ù
ÛØ¨ÛÙÛÙ
Ø Ù
ÛâØªÙØ§ÙÛÙ
Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ را با ÙØ± Ø¯Ù Ø±ÙØ´ Ø§Ø³ØªÙØ§Ø¯Ù از Ø®Ø§ØµÛØª DOM Ù addEventListener اختصاص دÙÛÙ
. اÙ
ا Ù
عÙ
ÙÙØ§ از ÛÚ©Û Ø§Ø² اÛÙ Ø¯Ù Ø±ÙØ´ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛÙ
.
addEventListener کار Ù
ÛâÚ©ÙÙØ¯Ø±ÙÛØ¯Ø§Ø¯ÙاÛÛ ÙØ¬Ùد Ø¯Ø§Ø±ÙØ¯ Ú©Ù ÙÙ
ÛâØªÙØ§Ù با Ø§Ø³ØªÙØ§Ø¯Ù از Ø®Ø§ØµÛØª DOM Ø¨Ø±Ø§Û Ø¢ÙÙØ§ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù اختصاص داد. ÙÙØ· با addEventListener.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ رÙÛØ¯Ø§Ø¯ DOMContentLoaded ک٠زÙ
اÙÛ Ø§ØªÙØ§Ù Ù
ÛâØ§ÙØªØ¯ Ú©Ù Ø³ÙØ¯ Ø¨Ø§Ø±Ú¯Ø²Ø§Ø±Û Ø´Ø¯Ù Ù Ø¯Ø±Ø®Øª DOM ساخت٠شدÙ.
// ÙÛÚâÙÙØª اجرا ÙÙ
ÛâØ´ÙØ¯
document.onDOMContentLoaded = function() {
alert("درخت DOM ساخت٠شد");
};
// با اÛÙ Ø±ÙØ´ کار Ù
ÛâÚ©ÙØ¯
document.addEventListener("DOMContentLoaded", function() {
alert("درخت DOM ساخت٠شد");
});
پس رÙÛØ¯Ø§Ø¯ addEventListener Ú©ÙÛâØªØ± است. ÙØ±ÚÙØ¯, اÛÙ ÚÙÛ٠رÙÛØ¯Ø§Ø¯âÙØ§ÛÛ Ø¨ÛØ´ØªØ± Ø§Ø³ØªØ«ÙØ§ ÙØ³ØªÙد تا ÛÚ© ÙØ§ÙÙÙ.
شئ رÙÛØ¯Ø§Ø¯
Ø¨Ø±Ø§Û Ø§ÛÙÚ©Ù Ø¨ØªÙØ§ÙÛÙ Ø¨ÙØªØ± ÛÚ© رÙÛØ¯Ø§Ø¯ را Ú©ÙØªØ±Ù Ú©ÙÛÙ Ø¨Ø§ÛØ¯ در Ù ÙØ±Ø¯ اÛÙÚ©Ù ÚÙ Ø§ØªÙØ§ÙÛ Ø§ØªÙØ§Ø¯Ù Ø§Ø·ÙØ§Ø¹Ø§Øª Ø¨ÛØ´ØªØ±Û داشت٠باشÛÙ . اÛÙÚ©Ù ÙÙØ· âclickâ ÛØ§ âkeydownâ Ø§ØªÙØ§Ù Ø§ÙØªØ§Ø¯Ù کاÙÛ ÙÛØ³ØªØ بÙک٠٠ختصات اشارÙâگر Ù ÙØ³Ø اÛÙک٠کدا٠کÙÛØ¯ ÙØ´Ø±Ø¯Ù Ø´Ø¯ÙØ ٠⦠اÙÙ ÛØª دارد.
ز٠اÙÛ Ú©Ù ÛÚ© رÙÛØ¯Ø§Ø¯ Ø§ØªÙØ§Ù Ù ÛâØ§ÙØªØ¯Ø Ù Ø±ÙØ±Ú¯Ø± ÛÚ© شئ رÙÛØ¯Ø§Ø¯ (event object) Ø§ÛØ¬Ø§Ø¯ Ù ÛâÚ©ÙØ¯Ø Ø¬Ø²Ø¦ÛØ§ØªÛ دربار٠رÙÛØ¯Ø§Ø¯ را درÙÙ Ø¢Ù ÙØ±Ø§Ø± Ù ÛâØ¯ÙØ¯ ٠ب٠عÙÙØ§Ù ÙØ±ÙØ¯Û Ø¨Ù Ú©ÙØªØ±Ù Ú©ÙÙØ¯Ù ارسا٠٠ÛâÚ©ÙØ¯.
اÛÙ ÛÚ© ÙÙ ÙÙ٠از Ú¯Ø±ÙØªÙ ٠ختصات اشارÙâگر از شئ رÙÛØ¯Ø§Ø¯ است:
<input type="button" value="رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù" id="elem">
<script>
elem.onclick = function(event) {
// ÙÙ
Ø§ÛØ´ ÙÙØ¹ رÙÛØ¯Ø§Ø¯, Ø¹ÙØµØ± Ù Ù Ù
ختصات Ú©ÙÛÚ©
alert(event.type + " در " + event.currentTarget);
alert("Ù
ختصات: " + event.clientX + ":" + event.clientY);
};
</script>
Ø¨Ø¹Ø¶Û Ø§Ø² Ø®ØµÙØµÛات شئ event:
event.type- ÙÙØ¹ رÙÛØ¯Ø§Ø¯Ø در اÛÙØ¬Ø§
"click"است. event.currentTarget- Ø¹ÙØµØ±Û ک٠رÙÛØ¯Ø§Ø¯ را Ú©ÙØªØ±Ù Ù
ÛâÚ©ÙØ¯. دÙÛÙØ§ ÙÙ
اÙ
thisØ§Ø³ØªØ Ù Ú¯Ø± اÛÙÚ©Ù Ú©ÙØªØ±Ù Ú©ÙÙØ¯Ù ÛÚ© تابع Ù¾ÛکاÙÛ (arrow function) Ø¨Ø§Ø´Ø¯Ø ÛØ§ اÛÙÚ©Ùthisب٠ÚÛØ² دÛÚ¯Ø±Û Ù ÙÛØ¯ Ø´Ø¯Ù Ø¨Ø§Ø´Ø¯Ø Ø¯Ø± اÛÙ ØµÙØ±Øª Ù ÛâØªÙØ§ÙÛÙ Ø¹ÙØµØ± را ازevent.currentTargetØ¨Ú¯ÛØ±ÛÙ . event.clientX / event.clientY- ٠ختصات اشارÙâگر Ù ÙØ³ ÙØ³Ø¨Øª Ø¨Ù Ù¾ÙØ¬Ø±Ù Ø¨Ø±Ø§Û Ø±ÙÛØ¯Ø§Ø¯ÙØ§Û Ù Ø±Ø¨ÙØ· ب٠اشارÙâگر Ù ÙØ³.
Ø®ØµÙØµÛات Ø¨ÛØ´ØªØ±Û ÙÛØ² ÙØ¬Ùد دارد. Ø®ÛÙÛ Ø§Ø² Ø¢ÙÙØ§ ب٠ÙÙØ¹ رÙÛØ¯Ø§Ø¯ Ø¨Ø³ØªÚ¯Û Ø¯Ø§Ø±ÙØ¯: رÙÛØ¯Ø§Ø¯ÙØ§Û ØµÙØÙâÚ©ÙÛØ¯ ÛÚ© Ù Ø¬Ù ÙØ¹Ù Ø®ØµÙØµÛت Ø¯Ø§Ø±ÙØ¯Ø رÙÛØ¯Ø§Ø¯ÙØ§Û Ø§Ø´Ø§Ø±Ùâگر Ù ÙØ³ ÛÚ© Ù Ø¬Ù ÙØ¹Ù دÛگر. ÙÙ Ø§ÙØ·Ùر Ú©Ù Ø¨Ù Ø¬Ø²Ø¦ÛØ§Øª رÙÛØ¯Ø§Ø¯ÙØ§Û Ù Ø®ØªÙÙ Ù ÛâپردازÛ٠دربار٠آÙÙØ§ در Ø¢ÛÙØ¯Ù Ø¨ÛØ´ØªØ± ÛØ§Ø¯ Ø®ÙØ§ÙÛÙ Ú¯Ø±ÙØª.
اگر Ú©Ù ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù را درÙÙ HTML تعرÛÙ Ú©ÙÛÙ
Ø Ù
ÛâØªÙØ§ÙÛÙ
از شئ event Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
Ø Ù
اÙÙØ¯:
<input type="button" onclick="alert(event.type)" value="ÙÙØ¹ رÙÛØ¯Ø§Ø¯">
اÛ٠اÙ
کاÙâÙ¾Ø°ÛØ± است Ø²ÛØ±Ø§ زÙ
اÙÛ Ú©Ù Ù
Ø±ÙØ±Ú¯Ø± ØµÙØª را Ù
ÛÙ¬Ø®ÙØ§ÙØ¯Ø ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù Ù
اÙÙØ¯: function(event) {alert(event.type) } Ù
ÛâØ³Ø§Ø²Ø¯. Ú©Ù ÛØ¹ÙÛ: اÙÙÛ٠آرگÙÙ
ا٠"event" ÙØ§Ù
دارد ٠بدÙÙâÛ ØªØ§Ø¨Ø¹ از ØµÙØª Ú¯Ø±ÙØªÙ شد٠است.
Ø§Ø´ÛØ§Ø¡ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù: handleEvent
Ù٠تÙÙØ§ Ù
ÛâØªÙØ§ÙÛÙ
تابع را ب٠عÙÙØ§Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
Ø Ø¨ÙÚ©Ù Ù
ÛâØªÙØ§ÙÛÙ
با Ø§Ø³ØªÙØ§Ø¯Ù از addEventListener Ø§Ø´ÙØ§Ø¡ را ÙÛØ² ب٠عÙÙØ§Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù اختصاص دÙÛÙ
. زÙ
اÙÛ Ú©Ù Ø±ÙÛØ¯Ø§Ø¯Û Ø§ØªÙØ§Ù Ù
ÛâØ§ÙØªØ¯ Ø®ØµÙØµÛت handleEvent آ٠شئ صدا زد٠Ù
ÛâØ´ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
<button id="elem">رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù</button>
<script>
let obj = {
handleEvent(event) {
alert(event.type + " در " + event.currentTarget);
}
};
elem.addEventListener('click', obj);
</script>
ÙÙ
Ø§ÙØ·Ùر Ú©Ù Ù
ÛØ¨ÛÙÛØ¯ زÙ
اÙÛ Ú©Ù addEventListener ÛÚ© شئ را Ø¨Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù Ø¯Ø±ÛØ§Ùت Ù
ÛâÚ©ÙØ¯Ø obj.handleEvent(event) را در ØµÙØ±Øª Ø§ØªÙØ§Ù Ø§ÙØªØ§Ø¯Ù آ٠رÙÛØ¯Ø§Ø¯ صدا Ù
ÛâØ²ÙØ¯.
ÙÙ ÚÙÛÙ Ù ÛâØªÙØ§ÙÛ٠از ÛÚ© Ú©ÙØ§Ø³ شخصÛâØ³Ø§Ø²Û Ø´Ø¯Ù Ø¨Ø±Ø§Û Ø§Û٠کار Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ Ø Ù Ø«Ù Ø§ÛÙ:
<button id="elem">رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù</button>
<script>
class Menu {
handleEvent(event) {
switch(event.type) {
case 'mousedown':
elem.innerHTML = "Ú©ÙÛØ¯ Ù
ÙØ³ ÙØ´Ø§Ø± داد٠شد";
break;
case 'mouseup':
elem.innerHTML += "...Ù Ø±ÙØ§ شد.";
break;
}
}
}
let menu = new Menu();
elem.addEventListener('mousedown', menu);
elem.addEventListener('mouseup', menu);
</script>
اÛÙØ¬Ø§ ÛÚ© شئ ÙØ± د٠رÙÛØ¯Ø§Ø¯ را Ú©ÙØªØ±Ù Ù
ÛâÚ©ÙØ¯. ØªÙØ¬Ù Ú©ÙÛØ¯ Ú©Ù Ø¨Ø±Ø§Û Ø§ÛÙکار Ø¨Ø§ÛØ¯ دÙÛÙØ§ از addEventListener Ø¨Ø±Ø§Û Ø§Ø®ØªØµØ§Øµ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
. menu ÙÙØ· mousedown Ù mouseup را Ú©ÙØªØ±Ù Ù
ÛâÚ©ÙØ¯ ٠در ØµÙØ±Øª ÙÙÙØ¹ رÙÛØ¯Ø§Ø¯ÙØ§Û Ø¯Ûگر Ú©Ø§Ø±Û Ø§ÙØ¬Ø§Ù
ÙÙ
ÛâØ¯ÙØ¯.
Ù
تد handleEvent ÙØ±Ø§Ø± ÙÛØ³Øª Ú©Ù ÙÙ
ÙâÛ Ú©Ø§Ø±ÙØ§ را Ø®ÙØ¯Ø´ Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. Ù
ÛâØªÙØ§Ùد بÙÛÙ Ù
تدâÙØ§Û Ù
Ø±Ø¨ÙØ· ب٠رÙÛØ¯Ø§Ø¯Ùا را صدا Ø¨Ø²ÙØ¯. Ø¨Ø±Ø§Û Ù
ثاÙ:
<button id="elem">رÙÛ Ù
Ù Ú©ÙÛÚ© Ú©Ù</button>
<script>
class Menu {
handleEvent(event) {
// mousedown -> onMousedown
let method = 'on' + event.type[0].toUpperCase() + event.type.slice(1);
this[method](event);
}
onMousedown() {
elem.innerHTML = "Ú©ÙÛØ¯ Ù
ÙØ³ ÙØ´Ø±Ø¯Ù شد";
}
onMouseup() {
elem.innerHTML += "...Ù Ø±ÙØ§ شد.";
}
}
let menu = new Menu();
elem.addEventListener('mousedown', menu);
elem.addEventListener('mouseup', menu);
</script>
اکÙÙÙØ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ Ø¨Ù ÙØ¶ÙØ Ø¬Ø¯Ø§ شدÙâØ§ÙØ¯. در Ø¢ÛÙØ¯Ù Ø¨Ø±Ø§Û Ø§Ø±ØªÙØ§ کد کار Ø¢Ø³Ø§ÙØªØ±Û Ø®ÙØ§ÙÛ٠داشت.
Ø®ÙØ§ØµÙ
Û³ Ø±Ø§Ù Ø¨Ø±Ø§Û Ø§Ø®ØªØµØ§Øµ Ú©ÙØªØ±ÙâÚ©ÙÙØ¯ÙâÙØ§ ب٠رÙÛØ¯Ø§Ø¯Ùا ÙØ¬Ùد دارد:
- ØµÙØªâÙØ§Û HTML:
onclick="...". - Ø®ØµÙØµÛت DOM:
elem.onclick = function. - Ù
ØªØ¯ÙØ§:
elem.addEventListener(event, handler[, phase])Ø¨Ø±Ø§Û Ø§Ø¶Ø§Ù٠کردÙ,removeEventListenerØ¨Ø±Ø§Û ØØ°Ù کردÙ.
ØµÙØªâÙØ§Û HTML کاربرد Ø®ÛÙÛ Ú©Ù Û Ø¯Ø§Ø±ÙØ¯Ø ÚØ±Ø§ Ú©Ù ÙÙØ´ØªÙ کد Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÙØ³Ø· ÛÚ© تگ HTML Ù ÙØ¯Ø§Ø±Û Ø¹Ø¬ÛØ¨ Ø¨Ù ÙØ¸Ø± Ù ÛâØ±Ø³Ø¯. ÙÙ ÚÙÛÙ ÙÙ ÛâØ´ÙØ¯ کد Ø²ÛØ§Ø¯Û در Ø¢ÙØ¬Ø§ ÙÙØ´Øª.
ØµÙØªâÙØ§Û DOM Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù Ù ÙØ§Ø³Ø¨ Ø§Ø³ØªØ Ø§Ù Ø§ ÙÙ ÛâØªÙØ§ÙÛÙ Ø¨ÛØ´ØªØ± از ÛÚ© Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù Ø¨Ø±Ø§Û ÛÚ© رÙÛØ¯Ø§Ø¯ خاص Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ . در Ø¨ÛØ´ØªØ± اÙÙØ§Øª اÛÙ Ù ØØ¯ÙØ¯ÛØª Ø¨Ø±Ø§Û Ù Ø§ Ù ÙÙ ÙÛØ³Øª.
اÙ
ا را٠آخر ÙØ§Ø¨Ù Ø§ÙØ¹Ø·Ø§ÙâØªØ±ÛÙ Ø±Ø§Ù Ø§Ø³ØªØ Ø§Ù
ا ÙÙØ´ØªÙ Ø¨ÛØ´ØªØ±Û ÙØ³Ø¨Øª Ø¨Ù Ø¯Ù Ø±ÙØ´ ÙØ¨Ù دارد. تعداد Ú©Ù
Û Ø§Ø² رÙÛØ¯Ø§Ø¯Ùا ÙÙØ· با اÛÙ Ø±ÙØ´ کار Ù
ÛâÚ©ÙÙØ¯. Ù
ث٠transitionend Ù DOMContentLoaded (در Ø¢ÛÙØ¯Ù دربارÙâ Ø¢Ù ØµØØ¨Øª Ù
ÛâÚ©ÙÛÙ
). ÙÙ
ÚÙÛÙ addEventListener Ø§Ø´ÛØ§ را ÙÛØ² ب٠عÙÙØ§Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ù ÙØ¨ÙÙ Ù
ÛâÚ©ÙØ¯. در اÛÙ ØØ§Ùت Ù
تد handleEvent در ØµÙØ±Øª Ø§ØªÙØ§Ù Ø§ÙØªØ§Ø¯Ù رÙÛØ¯Ø§Ø¯ صدا زد٠Ù
ÛâØ´ÙØ¯.
بدÙÙ ØªÙØ¬Ù ب٠اÛ٠ک٠از Ú©Ø¯Ø§Ù Ø±ÙØ´ Ø¨Ø±Ø§Û Ø§Ø®ØªØµØ§Øµ Ø¯Ø§Ø¯Ù Ú©ÙØªØ±ÙâÚ©ÙÙØ¯Ùâ Ø¨Ù رÙÛØ¯Ø§Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø ÙÙ ÛØ´Ù ÛÚ© شئ رÙÛØ¯Ø§Ø¯ ب٠عÙÙØ§Ù اÙÙÛÙ ÙØ±ÙØ¯Û Ø¯Ø±ÛØ§Ùت Ø®ÙØ§Ùد کرد. اÛ٠شئ Ø´Ø§Ù Ù Ø§Ø·ÙØ§Ø¹Ø§Øª Ù Ø¬Ø²Ø¦ÛØ§ØªÛ دربار٠اÛÙÚ©Ù ÚÙ Ø§ØªÙØ§ÙÛ Ø§ÙØªØ§Ø¯Ù است.
دربار٠کÙÛØª رÙÛØ¯Ø§Ø¯Ùا Ù ØªÙØ§Ùت اÙÙØ§Ø¹ Ø¢ÙÙØ§ در بخشâÙØ§Û Ø¨Ø¹Ø¯Û ÛØ§Ø¯ Ø®ÙØ§ÙÛÙ Ú¯Ø±ÙØª.
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)