Iframe追加创建一个副本
iframe appends to makes a copy
我有这个jQuery代码,但当我试图执行它,它使blok2
的副本,当它返回到其正式状态。有人知道怎么解决这个问题吗?
每当我点击我的块它就会扩展并像它应该的那样显示视频。但是当我点击缩放它时,它会复制iframe,它不会隐藏。我尝试了一些解决方案,但我不知道如何取消隐藏iframe,它不会翻倍。
$(document).ready(function() {
$(".blok2").click(function() {
$(".codeacademy").toggle();
});
$(".blok2").click(function() {
$("<iframe />", {
src: "https://www.youtube.com/embed/07Q6aUPfqkM"
}).appendTo(".blok2");
});
});
.rij1 {
display: flex;
width: 500px;
}
.rij2 {
display: flex;
width: 500px;
}
.blok1 {
background-color: cadetblue;
height: 250px;
width: 250px;
}
.blok2 {
background-color: palevioletred;
height: 250px;
width: 250px;
}
.blok3 {
background-color: darkseagreen;
height: 250px;
width: 250px;
}
.blok4 {
background-color: coral;
height: 250px;
width: 250px;
}
img.codeacademy {
display: block;
width: 100%;
height: auto;
content: url("http://s3.amazonaws.com/codecademy-blog/assets/logo_blue_dark.png");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='rij1'>
<div class='blok1'></div>
<div class='blok2'>
<img class="codeacademy">
</div>
</div>
<div class='rij2'>
<div class='blok3'></div>
<div class='blok4'></div>
</div>
问题是由于您有两个点击事件处理程序附加到blok2
元素的事实-它们都在每次点击时执行;它们不会像你期望的那样在连续点击时切换。
要解决这个问题,你可以有一个单一的点击事件处理程序,检查是否有iframe
在blok2
元素已经。如果有,它会删除它并显示codecademy图像。如果不是,它将创建iframe并隐藏图像。像这样:
$(document).ready(function() {
$(".blok2").click(function() {
var $iframe = $(this).find('iframe');
if ($iframe.length) {
$(".codeacademy").show();
$iframe.remove();
} else {
$(".codeacademy").hide();
$("<iframe />", {
src: "https://www.youtube.com/embed/07Q6aUPfqkM"
}).appendTo(".blok2");
}
});
});
.rij1 {
display: flex;
width: 500px;
}
.rij2 {
display: flex;
width: 500px;
}
.blok1 {
background-color: cadetblue;
height: 250px;
width: 250px;
}
.blok2 {
background-color: palevioletred;
height: 250px;
width: 250px;
}
.blok3 {
background-color: darkseagreen;
height: 250px;
width: 250px;
}
.blok4 {
background-color: coral;
height: 250px;
width: 250px;
}
img.codeacademy {
display: block;
width: 100%;
height: auto;
content: url("http://s3.amazonaws.com/codecademy-blog/assets/logo_blue_dark.png");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='rij1'>
<div class='blok1'></div>
<div class='blok2'>
<img class="codeacademy">
</div>
</div>
<div class='rij2'>
<div class='blok3'></div>
<div class='blok4'></div>
</div>
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 处理一个JSON文件;完全相同的副本不是
- 我如何制作一个文件的副本并用gump将其移动到父文件夹
- Iframe追加创建一个副本
- 我有一个表单和一个按钮来添加它的副本.我希望重复的无线电输入具有变量名
- 如何找到两个相同的行,并删除他们两个?(不只是一个副本!)
- 我得到一个空白的副本上拖拽一个事件到日历与FullCalendar JQuery插件
- 在JavaScript中创建一个反向数组的独立副本
- 拖动图像的副本不会使另一个图像放到上面
- 循环的Javascript放置一个指针,而不是用于链接分配的变量的副本
- 一个JS函数如果是一个正在工作的JS函数的近似副本,那么它将无法工作
- Safari/Webkit的后退按钮从缓存加载页面,而不是一个新的副本