alan
828
2017-12-07 20:50:06.0 작성 2017-12-07 20:51:21.0 수정됨
9
260

버튼 같은 거에 꼭 A 태그를 쓸 필요 있을까요?


테이블에 동적으로 리스트를 붙여 넣습니다.

html에 onclick 쓰는 걸 안좋아합니다.

불러올 때마다 이벤트를 새로 다는 것이 불필요한 연산이라고 생각합니다.

table에 이벤트를 걸어 놓고

target의 대상이 해당 tag면 이벤트를 발생시킵니다.

button에 직접 이벤트를 걸어 놓으면 아무런 문제가 없지만

delegate를 통해서 접근하면 button안에 텍스트와 버튼의 이벤트 타겟이 분리됩니다.

그러면 부모나 자식을 한번 더 검색해 줘야 합니다.

꼭 글씨만 클릭해야 되는 경우가 아니고 box를 클릭하는 경우라면

A태그는 불필요하다고 생각합니다.

요즘은 이벤트 발생 버튼이면 A태그를 많이 쓰는데 꼭 그래야 할까요?

href 이벤트 막는 것도 불필요한 행동인데요.

0
0
  • 답변 9

  • 아수수
    629
    2017-12-07 22:07:17.0

    네 쓰지마세요

    1
  • 앵두파파
    154
    2017-12-07 22:36:10.0

    앵커태그는 원래 하이퍼링크 같은 의미로 페이지 이동 또는 포커스 이동용으로 사용해야하는 태그이죠. button으로 쓰는게 좋은 것이 맞다고 생각합니다.

    1
  • jhyoon
    778
    2017-12-07 22:53:34.0

    button 태그가 있지요(2)

    0
  • 민트맛밤
    345
    2017-12-07 23:37:56.0 작성 2017-12-07 23:48:19.0 수정됨

    전 이런 개념을 처음 듣네요.

    저처럼 몰라서 안쓰는 사람이 많은게 아닐까 합니다...

    사실 지금도 잘 이해가 안됩니다. 특정 DOM에 이벤트 함수로 미리 바인딩하는 것과 선언된 DOM에 차후로 onclick따위로 이벤트 함수를 바인딩 하는 것이 연산량에서 차이를 보인다는 건가요?

    0
  • alan
    828
    2017-12-08 00:47:36.0

    민트맛밤// onclick은 html tag attribute에 직접 하드코딩하는 것을 말하는 것이고

    html에 프로그램 영역은 최소한 덜 들어가는게 좋다고 생각하고요.

    또한 디자인 왔다 갔다 할 때 손실 됐을 경우 다시 달아주기도 귀찮습니다.

    dom을 append할 때 text에 onclick 붙이는 것도 마찬가지로 별로 좋아하질 않습니다.

    이게 싫으면 돔을 document에 붙인 후에 일괄적으로 addEventListener를 해야 되는데요.

    이 부분이 계속 반복적으로 일어나는 불필요한 연산입니다.


    0
  • 요만꿈
    67
    2017-12-08 07:44:49.0

    화면단 UI와 로직의 분리는 기본 중의 기본입니다.

    태그에 직접 속성으로 이벤트 붙이는 건 꼭 필요한 거 아니면 걷어내는 게 맞죠.

    0
  • 민트맛밤
    345
    2017-12-08 08:04:18.0

    오 그렇군요...확실히 유지보수도 편해지겠고요. 좋은걸 배웠네요.

    0
  • 수송대원아님
    3k
    2017-12-08 08:23:22.0

    웹 표준에 대해서 한번 찾아 읽어보세요.

    0
  • 더미
    6k
    2017-12-08 10:12:21.0

    겸손한 자바스크립트로 찾아보세요

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