JavaScript-те Object ішіндегі оқиға элементі

Event объектісі сондай-ақ оқиға болған элементті алуға мүмкіндік береді. Бұл элемент target қасиетінде болады. Бұл не үшін қажет, егер бұл элемент this-те болатын болса?

Мәселе мынада, this әрқашан оқиға байланған элементті қамтиды, ал target қасиеті - шынымен басылған элемент. Бұл нақты элемент this-мен сәйкес келуі мүмкін, немесе сәйкес келмеуі мүмкін.

Мысалға қарайық. Бізде div және оның ішінде абзац бар делік:

html<div id="elem">
  <p>мәтін</p>
</div>

Оқиғаны div-ге байлайық, бірақ абзацқа басайық. Абзацқа басу сонымен бірге div-ге де басу болатыны анық, себебі абзац біздің div-іміздің ішінде.

Сипатталған жағдайда target қасиеті оқиға болған соңғы тегті қамтиды - яғни абзацты, ал div емес. Мұны тексерейік:

javascriptlet elem = document.querySelector('#elem');

elem.addEventListener('click', function(event) {
  console.log(event.target); // біздің абзацымызды шығарады
  console.log(this);         // біздің div-імізді шығарады
});
Задание 1

Сізде ul тізімі және li тегтері бар болсын:

cssul {
  padding: 30px;
  border: 1px solid red;
}
li {
  list-style-type: none;
  margin-bottom: 20px;
  border: 1px dashed black;
}
html<ul id="elem">
  <li>мәтін</li>
  <li>мәтін</li>
  <li>мәтін</li>
  <li>мәтін</li>
  <li>мәтін</li>
</ul>

Результат:

ul тегіне басу оқиғасын байланыстырыңыз. Бұл оқиға өңдегішінде tagName қасиеті арқылы қай тегге басылғанын тексеріңіз. Егер басу li тегіне болса - осы тегтің мәтінінің соңына леп сәйлеу белгісін қосыңыз. Ал егер басу ul тегіне болса - бұл туралы ақпаратты консольге шығарыңыз.