javascript - 单击时删除 iFrame src 数据属性
问题描述
我有一个 vimeo 播放器,它的 src ID 是data-vimeo
从div
.
下面的例子:
<div class="js-video-btn" data-vimeo="286031821">Button Link</div>
我的 vimeo 播放器的 iframe 看起来像这样
<iframe class="vimeo-frame" src='https://player.vimeo.com/video/' frameborder='0' webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
直到它拾取完成此URL的data-vimeo
属性src
https://player.vimeo.com/video/286031821
我正在使用 jQuery 实现这一点,并且一切正常。但是,我想做的是单击另一个按钮,它会删除 data-vimeo 属性,使src
URL 保持原样:https://player.vimeo.com/video/
这是我的 jQuery:
$('.js-video-btn').click(function() {
var video=$(this).data('vimeo');
$('.vimeo-frame').attr('src', $('.vimeo-frame').attr('src') + video );
});
$('.video-close').click(function(){
$('.vimeo-frame').removeAttr('src', $('.vimeo-frame').attr('src'));
});
我正在使用 removeAttr 但这完全删除了整个 URL,我只想删除data-vimeo
ID。实现这一目标的最佳方法是什么?
这里也是jsFiddle。
解决方案
删除最后一个正斜杠后的所有字符。
此外,不要多次添加视频 ID。
这是一个工作演示:
$(".js-video-btn").click(function() {
var video = $(this).data("vimeo");
var $videoFrame = $(".vimeo-frame");
var src = $videoFrame.attr("src");
// Make sure video id is not added twice
if (src.length - 1 === src.lastIndexOf("/")) {
$videoFrame.attr("src", src + video);
}
});
$(".video-close").click(function() {
var $videoFrame = $(".vimeo-frame");
var src = $videoFrame.attr("src");
// Trim the characters after the last forward slash
$videoFrame.attr("src", src.substr(0, src.lastIndexOf("/") + 1));
});
.link-txt {
cursor: pointer;
background: red;
padding: 10px;
color: white;
text-align: center;
}
.video-close {
width: 100%;
display: block;
background: blue;
color: white;
border: none;
padding: 10px;
margin: 10px 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="link-txt js-video-btn" data-vimeo="286031821">Button Link to add video to iframe</div>
<section class="video-popup">
<div class="video-inner">
<div class="clearfix">
<button type="button" class="btn btn-secondary video-close">close video</button>
</div>
<div class='o-embed-container'>
<iframe class="vimeo-frame" src='https://player.vimeo.com/video/' frameborder='0' webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
</div>
</div>
</section>
推荐阅读
- postgresql - 错误:运算符不存在:整数 <> 整数 []
- python - AWS Lambda 验证函数 - 如何调试或打印变量?
- javascript - vue.js状态管理for语句中的多个if条件获取数据并返回
- c - 为什么我在 vscode 中得到不同的答案?
- c# - 编译C#的csc命令输出与VS2019内部编译不一样?
- html - 如何在动态创建的输入字段中显示占位符而不是名称
- selenium - 我需要 Java 的 Selenium 代码中有关 If else 条件的帮助
- reactjs - 条形宽度在反应分析器中没有意义
- mysql - 将左连接与两个选择语句一起使用时的不同值
- tensorflow - ModifyGraphWithDelegate 抛出错误是什么意思?