როდესაც ჯავასკრიპტის DOM-თან გვიწევს მუშაობა, აუცილებელია ვიცოდეთ თუ როგორ ხდება მოვლენები (events) ელემენტებზე.
დღევანდელ გაკვეთილში განვიხილავთ stopPropagation
მეთოდს.
როდესაც დოკუმენტში რაიმე ელემენტზე გამოვიყენებთ click
event-ს ეს არ ნიშნავს, რომ მხოლოდ ამ ელემენტზე არსებული eventListener
შესრულდება, არამედ დოკუმენტის ხეში ყველა მშობელ ელემენტზე მიბმული click
event-იც შესრულდება.
მეტი თვალსაჩინოებისთვის მოვიყვანოთ შემდეგი მაგალითი:
მაგალითი: HTML
<div id="outer">
გარე დივი
<div id="inner">
შიდა დივი
</div>
</div>
თუ ზემოთ მოყვანილ მაგალითში ორივე ელემენტზე outer
და inner
-ზე მივაბავთ eventListener
-ს click
event-ით და დავკლიკავთ inner
div
-ზე, outer
div
-ის click
event-იც შესრულდება.
მაგალითი: JS
document.getElementById("outer").addEventListener("click", () => {
console.log("Outer click");
});
document.getElementById("inner").addEventListener("click", () => {
console.log("Inner click");
});
დაიბეჭდება:
Inner click
Outer click
იმისთვის, რომ შევაჩეროთ მსგავსი ქცევა, აუცილებელია გამოვიყენოთ stopPropagation
მეთოდი, ამისთვის საჭიროა addEventListener
მეთოდის მეორე პარამეტრად შემოვიტანოთ მაგალითად event სახელი, რომელშიც ხელმისაწვდომი გვექნება event-ის მეთოდები, მათ შორის stopPropagation
მეთოდიც.
მაგალითი:
document.getElementById("outer").addEventListener("click", () => {
console.log("Outer click");
});
document.getElementById("inner").addEventListener("click", (event) => {
console.log("Inner click");
event.stopPropagation();
});
დაიბეჭდება:
Inner click
როგორც მაგალითიდან ჩანს stopPropagation
მეთოდმა შეაჩერა click
event-ის მშობელ ელემენტებზე შესრულება
შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა
ქვემოთ მოცემულია უახლესი 3 ბლოგი პროგრამირების თემატიკასთან დაკავშირებით