초보개발자!
1k
2019-03-01 12:16:55
1
392

자바스크립트 onclick 중복클릭 방지 질문이있습니다.


S A B C D 각각 클릭하면 점수가 쌓이는걸연습하고있는데

한번선택한 등급은 다시 못선택하게 alert으로 막으려고하는데 어떤식으로 접근을해야할지모르겠내요

td태그 에서 class 에 a_1 a_2 a_3 a_4 뭐 이런식으로 주고

js에서 a_ + idx 만큼 each 돌면서 이런식으로 처리가 가능한가요?

다른 좋은방법있으면 피드백 부탁드립니다.

0
0
  • 답변 1

  • Gear
    296
    2019-03-01 16:42:41 작성 2019-03-01 16:47:45 수정됨

    Dataset을 이용하면 됩니다.


    아래는 예시입니다. 예시를 이해하려면 이벤트 위임도 아셔야합니다.


    HTML

    <ul id="test">
      <li data-score="1">1</li>
      <li data-score="2">2</li>
      <li data-score="3">3</li>
      <li data-score="4">4</li>
    </ul>


    Javascript

    var score = 0;
    
    document.querySelector('ul#test').addEventListener('click', function(event) {
      var target = event.target;
      
      if (target.tagName === 'LI' && !target.dataset.checked) {
        score += +target.dataset.score; // target.dataset.score는 String이기 때문에 Number로 형변환 해줬습니다.
        target.dataset.checked = true;
        console.log(score);
      }
    })


    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.