나는 비디오 플레이어와 그 비디오의 정보를 보여주고 뒤로 버튼을 클릭하면이 코드를 숨 깁니다. 그러나 다른 비디오를 볼 때 뒤로 버튼은 두 번째로 볼 수있는 div를 선택하지 않습니다. :visible
선택기가 어떤 div가 표시되는지 결정할 수 있도록 .live()
에 연결해야합니까? 그렇지 않다면 내 눈에 띄는 사업부를 찾을 수없는 이유는 무엇입니까?jQuery를 사용하여 보이는 항목 찾기
jQuery('ul.projects li').click(function() {
var videolist = jQuery(this).closest('ul');
var videoplayer = jQuery(videolist).prev();
var videoplayerID = jQuery(videoplayer).find("div:first").attr("id");
var filename = jQuery(this).find("img").attr("alt");
var infoclass = '.' + filename.replace(/ /g,'');
jwplayer(videoplayerID).setup({
'flashplayer': '/_/jw/player.swf',
'id': 'playerID',
'width': '258',
'height': '145',
'file': '/_/videos/' + filename + '.mp4',
'autostart': true,
'events': {
onComplete: function(event) {
jQuery(videoplayer).fadeOut(function() {
jQuery(infoclass).fadeOut();
jwplayer(videoplayerID).remove();
jQuery(videolist).fadeIn();
});
}
}
});
jQuery(videolist).fadeOut(function() {
jQuery(videoplayer).fadeIn();
jQuery(infoclass).fadeIn();
});
});
jQuery('.back-to-projects').click(function(e) {
e.preventDefault();
var videoplayer = jQuery(this).parent();
var videolist = jQuery(videoplayer).next();
var videoplayerID = jQuery(videoplayer).find("div:first").attr("id");
var videoinfo = '.' + jQuery(this).siblings("div:visible").not("#video-player-1_wrapper, #video-player-2_wrapper").attr("class");
alert(videoinfo);
jQuery(videoinfo).fadeOut();
jQuery(videoplayer).fadeOut(function() {
jwplayer(videoplayerID).remove();
jQuery(videolist).fadeIn();
});
});
나는 내가 그것을 숨기고 싶어 할 때를 제거 후 눈에 보이는 요소에 클래스 .visible
를 추가하여 프로세스를 단순화하고, 결국
<div class="video-container" style="display:none;">
<div id="video-player-1_wrapper" style="float:left;"></div>
<div class="DwightHoward" style="display:none;"><p>Dwight Howard, son.</p></div>
<div class="BrianDeegan" style="display:none;"><p>Brian Deegan, son.</p></div>
<div class="PatrickWillis" style="display:none;"><p>Patrick Willis, son.</p></div>
<div class="Castles" style="display:none;"><p>Castles, son.</p></div>
<div class="Springtime" style="display:none;"><p>Springtime, son.</p></div>
<div class="Powerbar" style="display:none;"><p>Powerbar, son.</p></div>
<a class="back-to-projects" href="" title="Back">Back</a>
</div>
<ul class="projects">
<li><img class="t" src="/_/img/elevator-pitch/thumbs/video/dwight-howard.jpg" alt="Dwight Howard" /></li>
<li><img class="t" src="/_/img/elevator-pitch/thumbs/video/brian-deegan.jpg" alt="Brian Deegan" /></li>
<li><img class="t" src="/_/img/elevator-pitch/thumbs/video/patrick-willis.jpg" alt="Patrick Willis" /></li>
<li><img class="b" src="/_/img/elevator-pitch/thumbs/video/castles.jpg" alt="Castles" /></li>
<li><img class="b" src="/_/img/elevator-pitch/thumbs/video/springtime.jpg" alt="Springtime" /></li>
<li><img class="b" src="/_/img/elevator-pitch/thumbs/video/powerbar.jpg" alt="Powerbar" /></li>
</ul>
- (등 여러 ul.projects, .video-용기를 사용하여 여기에 표시되지 확실히 훨씬 더 HTML이) 및 클릭이 발생하는 위치를 기반으로 정의 된 변수가 있지만 jQuery 객체 통합에 대한 요점이 잘 반영됩니다. 나는 그것을 확실히 연습 할 것입니다. 감사! –
나는 그것이 당신의 코드에서 드러났 으면 좋겠다. 어쨌든 해결책을 찾았 기 때문에 기쁘다. – swalk