채택완료

제이쿼리 이벤트 관련 문제

게시판 목록 스킨(list.skin.php) 에서 창 크기가 768 픽셀 이하일 때만

표의 제목(TBODY TR 부분)을 클릭하면 해당 게시물로 이동하도록 자바스크립트를 짰습니다.

문제는 창 크기를 줄였다가 크게 늘리면

768 이상인데도 클릭이 됩니다.

어떻게 수정해야 하나요?

Copy
<script>
var checkSizeDelay = 300; // 300
var checkSizeTimer = null;

$(window).load(function(){
    checkSize();
});

$(window).on('resize', function(){
    clearTimeout(checkSizeTimer);
    checkSizeTimer = setTimeout(function(){
        checkSize();
    }, checkSizeDelay);
});

function checkSize(){
  if($(window).width() < 768) {
    $('#bo_list .tbl_head01 tbody tr').click(function() {
      window.location = $(this).find('a').attr('href');
    });
  }
}
</script>

답변 3개 / 댓글 3개

채택된 답변
+20 포인트
2020-11-19 (목) 11:55:39
Copy
...

   $('#bo_list .tbl_head01 tbody tr').off('click');

   if($(window).width() < 768) {

...

이벤트 중복까지 제거 하려면 이렇게 하시는게 좋겠네요

답변에 대한 댓글 3개

아래 코드처럼 하면 되나요?

function checkSize(){
$('#bo_list .tbl_head01 tbody tr').off('click');
if($(window).width() < 768) {
$('#bo_list .tbl_head01 tbody tr').click(function() {
window.location = $(this).find('a').attr('href');
});
}
}
넵넵
잘 되네요. 감사합니다.

이벤트 중복을 피하려면 그렇게 하시면 되겠네요.

Copy
function checkSize(){

  if($(window).width() < 768) {

    $('#bo_list .tbl_head01 tbody tr').click(function() {

      window.location = $(this).find('a').attr('href');

    });

  }

  if($(window).width() > 768) {

    $('#bo_list .tbl_head01 tbody tr').off('click');

  }

 

}

이렇게 해주시면 되겠네요.

답변을 작성하려면 로그인이 필요합니다.