programing

jQuery를 사용하여 기본 링크 클릭 동작을 중지하는 방법

css3 2023. 9. 2. 08:46

jQuery를 사용하여 기본 링크 클릭 동작을 중지하는 방법

웹 페이지에 링크가 있습니다.사용자가 클릭하면 페이지의 위젯이 업데이트됩니다.그러나 기본 기능(다른 페이지로 이동)은 이벤트가 발생하기 전에 발생하기 때문에 작업을 수행하고 있습니다.

링크는 다음과 같습니다.

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

jQuery는 다음과 같습니다.

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

뭐가 문제야?

e.preventDefault();

https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault 에서

이벤트의 추가 전파를 중지하지 않고 취소 가능한 경우 이벤트를 취소합니다.

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

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

다음 방법은 정확히 동일한 작업을 수행합니다.

너는 원한다e.preventDefault()기본 기능이 발생하지 않도록 합니다.

또는 가지고 있습니다.return false당신의 방법으로.

preventDefault기본 기능을 방지합니다.stopPropagation이벤트가 용기 요소로 버블링되는 것을 방지합니다.

사용할 수 있습니다.e.preventDefault();대신에e.stopPropagation();

이 코드는 모든 이벤트 수신기를 제거합니다.

var old_element=document.getElementsByClassName(".update-cart");    
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);  

저는 이것에 한 시간을 낭비했습니다.저는 모든 것을 시도했습니다. 알고 보니 취소 버튼과 취소 요소 ID를 주는 것은 이벤트 전파를 막으려는 어떤 시도도 실패한다는 것을 의미했습니다.HTML 페이지는 ESC를 누르는 사람으로 처리해야 한다고 생각합니다.

언급URL : https://stackoverflow.com/questions/5632031/how-to-stop-default-link-click-behavior-with-jquery