Sobes.tech
Junior

event.preventDefault ile event.stopPropagation arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

event.preventDefault() tarayıcının olay için varsayılan davranışını iptal eder (örneğin, <a> üzerine tıklandığında gezinmeyi), ve event.stopPropagation() DOM ağacında olayın yayılmasını veya balonlaşmasını durdurur, böylece aynı olay işleyicileri ebeveyn veya çocuk öğelerde çağrılmaz.

Örnek:

// Diyelim ki, bir div içinde bir bağlantı var
const link = document.querySelector('a');
const div = document.querySelector('div');

// Bağlantıya tıklama olay yöneticisi
link.addEventListener('click', (event) => {
  alert('Bağlantıya tıklandı');
  event.preventDefault(); // Bağlantı gezinmesini engeller
});

// Div'e tıklama olay yöneticisi
div.addEventListener('click', (event) => {
  alert('Div'e tıklandı');
  // event.stopPropagation() olmadan, bu olay yöneticisi bağlantıya tıklandıktan sonra çağrılır
});

Eğer bağlantıdaki olay yöneticisine event.stopPropagation() eklenirse:

// Bağlantıya tıklama ve yayılmayı durdurma
link.addEventListener('click', (event) => {
  alert('Bağlantıya tıklandı');
  event.preventDefault();
  event.stopPropagation(); // Olayın div'e yayılmasını durdurur
});

// Div'e tıklama olay yöneticisi
div.addEventListener('click', (event) => {
  alert('Div'); // Bu alert, bağlantıya tıklandığında gösterilmez
});

Özet tablo:

Yöntem Eylem Varsayılan davranışa etkisi Olay yayılmasına etkisi
event.preventDefault() Tarayıcının varsayılan davranışını iptal eder Evet Hayır
event.stopPropagation() Olayın yayılmasını durdurur Hayır Evet