我正在尝试创建一个只打开下一个名为.video-overlay的div的脚本。 我不想使用ID,因为每页最多可以有30个视频。
JS小提琴:https://jsfiddle.net/w2fqrzbw/
目前剧本正在影响两个......是否有一种方法可以定位名为.video-overlay的下一个div?
HTML:
<span class="video-trigger">Button 1 </span>
<!-- Close video trigger-->
<div class="video-overlay">
<div class="overlay-close">Close</div>
<div class="container">
Popup 1
</div>
</div>
<!-- Close video popup-->
<br><br/>
<br><br/>
<br><br/>
<span class="video-trigger">Button 2</span>
<!-- Close video trigger-->
<div class="video-overlay">
<div class="overlay-close">Close</div>
<div class="container">
Popup 2
</div>
</div>
<!-- Close video popup-->
JS:
//Video popup
$(document).ready(function() {
$('.video-trigger').click(function() {
$('.video-overlay').fadeIn(300);
$('.video-overlay video').get(0).play();
});
$('.video-overlay .overlay-close').click(function() {
$('.video-overlay').fadeOut(300);
$('.video-overlay video').get(0).pause();
});
});
这是我在实际网络文档中的布局:
<div class="col span_6_of_12 ripple-me">
<div class="video-thumbnail" style="background-image: url(<?php echo $video_thumbnail; ?>);">
<span class="video-trigger">
</span>
</div>
<!--Close Video box cta -->
<div class="video-overlay">
<div class="overlay-close">Close</div>
<div class="container">
<iframe allowFullScreen='allowFullScreen' src="<?php echo $video_link; ?>" width="960" height="370" allowtransparency="true" style='position:absolute;top:0;left:0;width:100%;height:100%;' frameborder="0"></iframe>
</div>
</div>
<!-- Close video popup-->
</div>
答案 0 :(得分:0)
您当前逻辑的问题在于它会影响点击中的所有$('.attendees').on('change', function(){
$value = Math.max(0, Number(this.value) - 1);
$('div[class*="guest-"]').hide().slice(0, $value).show();
});
元素。要解决此问题,您可以使用DOM遍历来仅使用.video-overlay
和.video-trigger
查找与所点击的next()
相关的一个。试试这个:
closest()
答案 1 :(得分:0)
尝试使用JQuery Next Function:
//Video popup
$(document).ready(function() {
$('.video-trigger').click(function() {
var $videoOverlay = $(this).next('.video-overlay');
videoOverlay.fadeIn(300);
videoOverlay.find('video').get(0).play();
});
});
答案 2 :(得分:0)
jQuery提供了强大的DOM遍历工具。一定要使用它们
//Video popup
$(document).ready(function() {
$('.video-trigger').click(function() {
$(this).parent().next('.video-overlay').fadeIn(300);
$('.video-overlay video').get(0).play();
});
$('.video-overlay .overlay-close').click(function() {
$(this).parent().fadeOut(300);
$('.video-overlay video').get(0).pause();
});
});