2012-05-25 2 views
0

나는 비디오 배열과 그 배열에 해당하는 엄지 손가락 목록을 가지고 있습니다. 단추 중 하나를 클릭하면 비디오 기간 동안 비활성화해야합니다. 수, ID가 각각 다른 존재와목록의 ONE 버튼/엄지 비활성화

<li rel='1' id="first"> 
    <div style="top:0px;"> 
     <img src="graphics/filler.png" alt="" width="280" height="128" /> 
    </div> 
</li> 

: 나는 목록의 각 항목은 다음과 같이 설정되어있는 경우 첫 번째 클릭 후, 그것은 전체 목록을

$('li', '.thumbs').on('touchend click', function() { 
    $("#myVid").on("loadeddata", function() { 
     $("#bigPic").addClass("move"); 
     $("#MyT").fadeOut(750); 
    }); 
    playVideo2($(this).index()); 
    $('li', '.thumbs').unbind(); 
}); 

를 비활성화하도록 그것을 가지고 방금 .thumbs 대신 id을 넣었으며 unbind 또는 off을 가지고 있습니까? 나는 이것이 비효율적이어야한다는 것을 알고 있지만, 어떻게해야할지 모르겠습니다. 어떻게 든 this()을 사용합니까? 그렇다면 은 어떻게일까요?

답변

1

글로벌 변수를 사용하여 어떤 비디오가 재생 중인지 확인할 수 있습니다.

//init 
var currentlyPlaying = undefined; 

이벤트 처리 부분 내에서이 변수를 클릭 한 버튼의 ID로 설정합니다.

currentlyPlaying = $(this).attr('id'); 

이 설정을 사용하면 스크립트에서 작업하기 전에 변수를 확인할 수 있습니다.

if (!(currentlyPlaying == $(this).attr('id'))) { 
    // your script 
} 

또는 ID를 사용하여 제안한대로 바인딩 해제 할 수 있습니다.

$('li', '.thumbs #' + $(this).attr('id')).unbind(); 
+0

미안하지만,이 특별한 종류의 물건에는 좋지 않습니다.하지만 그 첫 번째 부분은 현재 currentlyPlaying = undefined이고 정의되지 않은 상태로 유지 될 수 있습니까? 그리고 이것은 도움이되지만 실제 문제는 한 번에 ** ** 버튼 하나만 꺼두는 것입니다. –

+1

아니요, 단지 초기 값입니다. 원하는대로 설정합니다 (예 : 자동 재생 사용). 'currentlyPlaying = $ (this) .attr ('id');'행은 클릭 된 엄지 손가락의 ID로 값을 설정합니다. 'currentlyPlaying = 'first';'. – Paul

+1

저장된 ID가 마지막으로 클릭 한 ID와 같지 않으면 'currentlyPlaying' 값을 검사하여 스크립트가 실행됩니다. 따라서 하나의 버튼입니다. – Paul