循环中的多个 Magnific 弹出窗口仅显示最后一项的内容
Multiple Magnific popup in loop only showing content of last item
我正在使用此功能通过 Magnific Popup 在灯箱中显示 YouTube 视频。我得到 .video-youtube
link 的 id
来为任何 link.
创建动态 iframe
在此页面中,我有 3 个不同的 link,问题是灯箱仅显示最后一个视频,而不是根据单击哪个 link 动态更改它。任何提示将不胜感激。
<a id="siTrd7uucW" class="video-youtube" href="#">Click to view video</a>
<a id="reFad8ug77" class="video-youtube" href="#">Click to view video</a>
<a id="sghrd7tu99" class="video-youtube" href="#">Click to view video</a>
(function($) {
$(document).ready(function() {
$(".video-youtube").each(function() {
var id = this.id;
$(window).load(function() {
$('.video-youtube').magnificPopup({
items: {
src: $('<iframe width="560" height="315" src="https://www.youtube.com/embed/' + id + '?autoplay=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'),
type: 'inline'
}
});
});
});
});
})(jQuery);
首先 window.load
是没有必要的。您在 document.ready 处理程序中 运行,因此 window.load
已经被解雇了。
关于这个问题,是因为您选择了循环中的所有 $('.video-youtube')
元素。使用$(this)
到仅引用当前实例:
(function($) {
$(function() {
$(".video-youtube").each(function() {
$(this).magnificPopup({
items: {
src: $('<iframe src="https://www.youtube.com/embed/' + this.id + '?autoplay=1" width="560" height="315" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'),
type: 'inline'
}
});
});
});
})(jQuery);
我正在使用此功能通过 Magnific Popup 在灯箱中显示 YouTube 视频。我得到 .video-youtube
link 的 id
来为任何 link.
iframe
在此页面中,我有 3 个不同的 link,问题是灯箱仅显示最后一个视频,而不是根据单击哪个 link 动态更改它。任何提示将不胜感激。
<a id="siTrd7uucW" class="video-youtube" href="#">Click to view video</a>
<a id="reFad8ug77" class="video-youtube" href="#">Click to view video</a>
<a id="sghrd7tu99" class="video-youtube" href="#">Click to view video</a>
(function($) {
$(document).ready(function() {
$(".video-youtube").each(function() {
var id = this.id;
$(window).load(function() {
$('.video-youtube').magnificPopup({
items: {
src: $('<iframe width="560" height="315" src="https://www.youtube.com/embed/' + id + '?autoplay=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'),
type: 'inline'
}
});
});
});
});
})(jQuery);
首先 window.load
是没有必要的。您在 document.ready 处理程序中 运行,因此 window.load
已经被解雇了。
关于这个问题,是因为您选择了循环中的所有 $('.video-youtube')
元素。使用$(this)
到仅引用当前实例:
(function($) {
$(function() {
$(".video-youtube").each(function() {
$(this).magnificPopup({
items: {
src: $('<iframe src="https://www.youtube.com/embed/' + this.id + '?autoplay=1" width="560" height="315" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'),
type: 'inline'
}
});
});
});
})(jQuery);