요소의 데이터 속성을 기반으로 swfobject를 통해 Youtube 비디오를로드하는 비디오 갤러리를 만들었습니다. 그것은 IE를 제외한 모든 브라우저에서 아주 잘 작동합니다. 내가보고있는 이상한 행동은 말이되지 않습니다.JQuery .click() 이벤트, IE 8 및 9에서 매우 이상한 동작
다음과 같이 각 축소판에 대한 마크 업입니다
<li>
<div class="movie-image">
<a class="" data-videotitle="Title" data-videoid="$node.contribution('video')" href="http://www.youtube.com/watch?v=41ZskpgQqZ4">
<img class="video-link" data-videotitle="Title" data-videoid="41ZskpgQqZ4" src="http://img.youtube.com/vi/41ZskpgQqZ4/default.jpg" alt="Title">
<h5>Title</h5>
</a>
</div>
</li>
이 자바 스크립트와 이벤트 바인딩 : 내가 어떤의 링크를 클릭 :
$('.video-link').click(function(){
player.setVideo(this.getAttribute("data-videoid"), true);
player.setTitle(this.getAttribute("data-videotitle"));
window.event.returnValue = false; //IESUX
if(window.event.stopPropagation) window.event.stopPropagation();
window.event.cancelBubble = true;
//Yes, there's a lot of redundancy here. None has worked.
return false;
})
이제
는, 여기에 이상한 부분을 IE를 제외한 브라우저는 이벤트가 정상적으로 작동합니다.
그러나 IE에서 h5 요소를 클릭하면 모든 것이 정상적으로 작동합니다. 그러나 이미지를 클릭하면 브라우저가 미리보기 이미지로 이동합니다. 그게 링크의 대상조차 아니기 때문에 정말 이상합니다.
EDIT : 나는이 웹 페이지에서 JQuery 1.4.2를 사용하여 깜빡했다.
편집 2 : 음 ... 쓰레기. 방금 문제를 보여주기 위해 바이올린을 넣으려고 시도했지만, JQuery의 구 버전에서도 바이올린이 잘 작동합니다.
코드와 마크 업을 보면 h5 요소를 클릭하면 모든 브라우저의 비디오로 이동해야합니다. 할 일이 있으면 미리보기 이미지로 이동해야합니다. –
그게 이상한 이유 야. –
이것은 약간 질책이지만 h5를 클릭하면 클릭 핸들러 내부에서 아무 것도 수행하지 않아야한다고 생각합니다. 또는 이벤트가 터지면 h5에 데이터 속성이 없기 때문에 오류가 발생해야합니다. 익명의 함수 안에있는'this'는 당신이 생각하는 것을 참조합니까? – NemesisX00