JQuery ile varsayılan bağlantı tıklama davranışı nasıl durdurulur


89

Bir web sayfasında bağlantım var. Bir kullanıcı onu tıkladığında, sayfadaki bir pencere öğesi güncellenmelidir. Ancak, olay tetiklenmeden önce varsayılan işlevsellik (farklı bir sayfaya gitme) gerçekleştiği için bir şeyler yapıyorum.

Bağlantı şu şekilde görünüyor:

<a href="store/cart/" class="update-cart">Update Cart</a>

JQuery şöyle görünür:

$('.update-cart').click(function(e) { 
  e.stopPropagation(); 
  updateCartWidget(); 
});

Sorun nedir?


Yanıtlar:



36
$('.update-cart').click(function(e) {
    updateCartWidget();
    e.stopPropagation();
    e.preventDefault();
});

$('.update-cart').click(function() {
    updateCartWidget();
    return false;
});

Aşağıdaki yöntemler aynı şeyi başarır.


Neden aramam gerekiyor stopPropagation()ve preventDefault()?
smartcaveman

2
Jonathon'un cevabına bakın, her işlevin ne yaptığını açıklıyor. Ancak temel olarak, az önce işlediğiniz tıklamanın daha sonra başka biri tarafından işlenmediğinden emin olmak için.
Peeter

30

e.preventDefault()Varsayılan işlevselliğin oluşmasını önlemek istiyorsunuz .

Veya return falseyönteminizden var.

preventDefaultvarsayılan işlevselliği stopPropagationengeller ve olayın kapsayıcı öğelerine köpürmesini engeller.



1

Bu kod tüm olay dinleyicilerini çıkarır

var old_element=document.getElementsByClassName(".update-cart");    
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);  
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.