[javascript] onclick 메서드에서 기본 이벤트 처리를 방지하는 방법은 무엇입니까?

onclick 메서드에서 기본값을 방지하는 방법은 무엇입니까? 사용자 지정 값도 전달하는 방법이 있습니다.

<a href="#" onclick="callmymethod(24)">Call</a>
function callmymethod(myVal){
    //doing custom things with myVal
    //here I want to prevent default
}



답변

콜백을 반환 false하고 onclick핸들러 에 전달 합니다.

<a href="#" onclick="return callmymethod(24)">Call</a>

function callmymethod(myVal){
    //doing custom things with myVal
    //here I want to prevent default
    return false;
}

그러나 유지 보수 가능한 코드 를 생성하려면 “인라인 자바 스크립트” (예 : 요소의 태그 내에 직접있는 코드)를 사용하지 말고 포함 된 자바 스크립트 소스 파일 ( 눈에 잘 띄지 않는 자바 스크립트 라고 함 )을 통해 요소의 동작을 수정해야합니다 .

마크 업 :

<a href="#" id="myAnchor">Call</a>

코드 (별도 파일) :

// Code example using Prototype JS API
$('myAnchor').observe('click', function(event) {
    Event.stop(event); // suppress default click behavior, cancel the event
    /* your onclick code goes here */
});


답변

제 생각에는 대답이 틀 렸습니다! 그는 event.preventDefault();당신이 단순히 거짓을 반환 할 때를 물었습니다 . event.preventDefault();AND event.stopPropagation();도 호출 합니다!

다음과 같이 해결할 수 있습니다.

<a href="#" onclick="callmymethod(event, 24)">Call</a>
function callmymethod(e, myVal){
    //doing custom things with myVal

    //here I want to prevent default
    e = e || window.event;
    e.preventDefault();
}


답변

이것을 시도하십시오 (그러나 정상적인 저하에href 대한 유효한 값 이없는 경우 이러한 경우 버튼을 사용하십시오 )

<a href="#" onclick="callmymethod(24); return false;">Call</a>


답변

이벤트를 포착 한 다음 preventDefault ()로 차단할 수 있습니다-순수 자바 스크립트에서 작동합니다.

document.getElementById("xyz").addEventListener('click', function(event){
    event.preventDefault();
    console.log(this.getAttribute("href"));
    /* Do some other things*/
});


답변

href 태그의 “#”대신 “javascript : void (0)”를 넣으세요.

<a href="javascript:void(0);" onclick="callmymethod(24)">Call</a>


답변

이것은 나를 위해 일했습니다.

<a href="javascript:;" onclick="callmymethod(24); return false;">Call</a>


답변

당신이 사용할 수있는:

event.stopPropagation();

https://dom.spec.whatwg.org/#dom-event-stoppropagation