테스트 사이트 - 개발 중인 베타 버전입니다

제이쿼리 이벤트 관련 문제 채택완료

ango 4년 전 조회 3,076

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

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

 

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

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

 

어떻게 수정해야 하나요?

 

</p>

<p><script>

var checkSizeDelay = 300; // 300

var checkSizeTimer = null;</p>

<p>$(window).load(function(){

    checkSize();

});</p>

<p>$(window).on('resize', function(){

    clearTimeout(checkSizeTimer);

    checkSizeTimer = setTimeout(function(){

        checkSize();

    }, checkSizeDelay);

});</p>

<p>function checkSize(){

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

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

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

    });

  }

}

</script></p>

<p>

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

답변 3개

채택된 답변
+20 포인트
4년 전

</p>

<p>...</p>

<p>   $('#bo_list .tbl_head01 tbody tr').off('click');</p>

<p>   if($(window).width() < 768) {</p>

<p>...</p>

<p>

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

a
ango
4년 전
아래 코드처럼 하면 되나요?

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');
});
}
}
백수1995
4년 전
넵넵
a
ango
4년 전
잘 되네요. 감사합니다.

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

s
4년 전

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

로그인 후 평가할 수 있습니다

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

s
4년 전
</code>
</pre>

<p>function checkSize(){</p>

<p>  if($(window).width() < 768) {</p>

<p>    $('#bo_list .tbl_head01 tbody tr').click(function() {</p>

<p>      window.location = $(this).find('a').attr('href');</p>

<p>    });</p>

<p>  }</p>

<p>  if($(window).width() > 768) {</p>

<p>    $('#bo_list .tbl_head01 tbody tr').off('click');</p>

<p>  }</p>

<p> </p>

<p>}</p>

<p><code>

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

로그인 후 평가할 수 있습니다

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

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

로그인