Извините, вам придется заменить ситуацию на YouTube самостоятельно. В противном случае я исправил все для вас, чтобы jQuery работал правильно.
<!DOCTYPE html>
<html>
<head>
<title>Drop Test</title>
<style>
.video_frame {
background: #efefef;
width: 50%;
margin-left: auto;
margin-right: auto;
height: 75%;
}
</style>
</head>
<body>
<div class="container">
<h1>Bootstrap Select demo</h1>
<select class="selectpicker" data-style="btn-info" multiple data-max-options="3" data-live-search="true">
<optgroup label="Test">
<option id="vdo1" value="1">Test</option>
</optgroup>
</select>
</div>
<br><br>
<div class="video_frame">
<div style="width:40%;min-height:200px;"></div>
</div>
<script
src="https://code.jquery.com/jquery-3.4.1.js"
integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
crossorigin="anonymous"></script>
<script>
$(document).ready(function () {
$(".video_frame").hide();
$(".selectpicker optgroup option").click(function () {
$(".video_frame").show("slow");
var val = $(this).find("optgroup option").attr('value');
$("#" + val).show("slow");
});
});
</script>
</body>
</html>
Просто замените стилизованный div на ваш iframe.
Основная проблема заключалась в том, что вашCSS был установлен, чтобы не показывать ваше видео. Попытка показать () это не влияет на отображение CSS. Вам нужно скрыть () его загрузку и показать (), когда он выбран.
Другим решением будет использование
.css ('display', 'none') onload
и
.css ('display',' inline-block ') onselect
Вам все равно нужно удалить «display: none;»из css.
Возможно, есть и другие решения.