2013-02-14 2 views
2

내부에 테이블이있는 링크 컨테이너가있는 것을 염려하게 만듭니다. 처음에는 HTML5에서 "허용"되었지만 IE 6-8에서 테이블을 클릭하면 페이지가 리디렉션되지 않았을 때 div가 (테이블이있는) 태그를 둘러 쌌습니다.

몇 가지 유사한 게시물을 여기에서 보았는데 문제는 IE가 올바른 구현을 수행하는 인라인 요소 내부에 블록 요소를 중첩하는 것임을 발견했습니다. 이를 해결하기 위해 래핑 div를 추가하고 URL의 데이터 경로 특성을 부여하고 jQuery에서 click 이벤트를 설정했습니다.

이제 문제는 click 이벤트가 작동하지만 정의되지 않은 상태를 반환합니다. 표 내용을 클릭하면 나는 그것이 $ (this)의 사용과 관련이 있다고 생각하지만 100 %는 사용하지 않는다.

html로 :

<div class="single-event" data-path="someUrl"> 
    <div class=""> 
     <h1></h1> 
     <p></p> 
     <table> 
      ........ 
     </table> 
    </div> 
</div> 

JS

$('.single-event').click(function() { 
    window.location.href = $(this).attr('data-path'); 
}); 

내 질문을 개선하고 어떤 응답을 주셔서 감사 할 수 있는지 알려 주시기 바랍니다!

+0

은 $ (this)가 정의되지 않았거나'$'만 반환합니다. 그것보다 후자가 jquery 프레임 워크가 없다면 – asifsid88

답변

0

클릭 처리기를 할당 할 때 문서 DOM이 준비되지 않았을 수 있습니다.

이와 같이 문서 준비 이벤트 핸들러에 할당 함수를 래핑하십시오.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.single-event').click(function() { 
      window.location.href = $(this).attr('data-path'); 
     }); 
    }); 
</script> 
+0

Doh! 뭔가 간단 할 거라고 생각해 줘서 고마워. –