본문 바로가기

오류 관련 해석

클릭 event listener에서 preventDefault와 매개변수 전달

728x90
반응형

질문

(추천 1)

저는 버튼에서 submit 이벤트가 멈추지만, click으로 트리거되는 함수(function)에는 매개 변수(parameter)를 전달하기를 원합니다. 제가 생각하기에 동작할 것 같은 코드는 아래와 같습니다.

function NL(line, event){
  event.preventDefault();
  document.getElementsByClassName('new-line')[1].innerHTML=line;
}
document.getElementsByClassName('new-line')[0].addEventListener('click', function(){NL('add new line');});

HTML은 아래와 같습니다.

<form class='myform'>
  <div class='form-block'>
    <span class='line'>1</span>
    <button class='new-line'>New Line</button>
    <button class='new-line'>New 2nd Line</button>
  </div>
</form>

저는 HTML을 바꿀 수 없고, JS만 수정할 수 있습니다. 미리 감사합니다!!

답변 3개

답변 세 개 모두 동일한 코드를 알려주기 때문에 동일한 내용은 생략

1번 답변

(추천 1)

당신의 함수(function)은 두 개의 매개 변수(parameter)를 허용합니다. function NL(line, event){...}

하지만 당신은 오직 하나의 매개 변수만 불러옵니다. NL('add new line');

 

당신은 NL 함수로 event를 전송하지 않습니다.

 

이것은 효과가 있어야 합니다:

function NL(line, event){
    event.preventDefault();
    document.getElementsByClassName('new-line')[1].innerHTML=line;
}
document.getElementsByClassName('new-line')[0].addEventListener('click', function(event){
    NL('add new line', event);
});

addEventlistener()로 event 선언하는 것

 

728x90
반응형