Удаляется не то, что нужно
Здравствуйте. Сильно прошу не ругать:) Мало что понимаю в js, но все же...
Есть два блока 1-й
<div id="videomp4true">
<ul id="lightgallery">
<li>
<video>
<source src="URL">
</video>
</li>
</ul>
</div>
2-й
<div id="videomp4false">
<ul id="lightgallery">
<li>
<div class="avPlayerWrapper avVideo">
<div class="avPlayerContainer">
<div id="AVPlayerID_0_d1912219373dcb82890210f3cfb5aa80" class="avPlayerBlock">
<iframe id="lvideo" src="www.youtube.com" width="400" height="300" title="JoomlaWorks AllVideos Player"></iframe>
</div>
</div>
</div>
</li>
</ul>
</div>
Мне необходимо при выполнении условия удалять тот или иной блок... но у меня в одном варианте условие срабатывает, а в другом нет, вот используемый код:
if (document.getElementsByClassName('jwplayer')) {
var mpeg = document.getElementById('videomp4false');
mpeg.parentNode.removeChild(mpeg);
}
if (document.getElementById('lvideo')) {
var youtube = document.getElementById('videomp4true');
youtube.parentNode.removeChild(youtube);
}
|
semen17,
в 1 строке условие всегда сработает, но не факт что не будет ошибки в строке 3 ... проверяют длину списка с одним классом и проверяют наличие элемента перед его удалением.
if (document.getElementsByClassName('jwplayer').length) {
var mpeg = document.getElementById('videomp4false');
mpeg && mpeg.parentNode.removeChild(mpeg);
}
if (document.getElementById('lvideo')) {
var youtube = document.getElementById('videomp4true');
youtube && youtube.parentNode.removeChild(youtube);
}
|
Да, все равно не работает, только одно условие выполняется, даже если поменять класс на элемент.
Может подскажите как поступить в данной ситуации? |
semen17,
можно только гадать, в предоставленном коде даже класса 'jwplayer' нет, как оно у вас в реальности неизвестно. |
рони,
Несилен я в описании проблемы..., а ещё, судя по всему, самое главное упустил, да и напутал в представленном коде. Просто голова уже кипит. Знаний мало, а хочется именно так:) Знал бы как в компоненте k2 joomla прописать условие, при котором выводился блок или нет, не усложнял бы всё так через js и вас не мучил:) В к2 блок формируется <div id="videomp4false"> <ul id="lightgallery"> <li class="Videos itemVideo"><?php echo $this->item->video; ?></li> </ul> </div> $video формируется <div class="avPlayerWrapper"> <div class="avPlayerContainer"> <div id="<?php echo $output->playerID; ?>" class="avPlayerBlock"> <?php echo $output->player; ?> </div> </div> </div> $player формируется для: ютюб
"YouTube" => "<iframe id=\"lvideo\" src=\"//www.youtube.com/embed/{SOURCE}\" width=\"{WIDTH}\" height=\"{HEIGHT}\" title=\"JoomlaWorks AllVideos Player\"></iframe>"
а если mp4, то
<div id=\"avID_{SOURCEID}\" style=\"width:{WIDTH}px;height:{HEIGHT}px;\" title=\"JoomlaWorks AllVideos Player\"></div>
<script type=\"text/javascript\">
jwplayer('avID_{SOURCEID}').setup({
'file': '{SITEURL}/{FOLDER}/{SOURCE}.{FILE_EXT}',
'image': '{PLAYER_POSTER_FRAME}',
'height': '{HEIGHT}',
'width': '{WIDTH}',
'autostart': '{PLAYER_AUTOPLAY}',
'repeat': '{PLAYER_LOOP}',
'controls': '{JWPLAYER_CONTROLS}'
});
</script>
остальное подгружается через js скрипт библиотеку jwplayer
Просто прописывая в js только одно условие, всё работает, а вот два условия уже нет. Если вопрос будет решён, готов отблагодарить не только + и кучей слов благодарности, но и материально. Просто эта ситуация меня уже напрягает:\ |
semen17,
ещё вариант
window.addEventListener('DOMContentLoaded', function() {
if (document.getElementsByClassName('jwplayer').length) {
var mpeg = document.getElementById('videomp4false');
mpeg && mpeg.parentNode.removeChild(mpeg);
}
if (document.getElementById('lvideo')) {
var youtube = document.getElementById('videomp4true');
youtube && youtube.parentNode.removeChild(youtube);
}
});
более вариантов нет, php не мой профиль. |
рони,
Этот вариант я уже пробывал:) К сожалению он не срабатывает. Но всё равно спасибо. Буду искать дальше решение. И спасибо за потраченное на меня время. |
semen17,
в консоли запустите код из поста 2, если сработает сделайте через window.setTimeout, лучше бы конечно на сервере это сделать. |
рони,
В консоли всё сработало как надо, попробую через window.setTimeout, если разберусь в синтаксисе:) |
semen17,
window.setTimeout(function() {
if (document.getElementsByClassName('jwplayer').length) {
var mpeg = document.getElementById('videomp4false');
mpeg && mpeg.parentNode.removeChild(mpeg);
}
if (document.getElementById('lvideo')) {
var youtube = document.getElementById('videomp4true');
youtube && youtube.parentNode.removeChild(youtube);
}
},2000);
|
| Часовой пояс GMT +3, время: 23:25. |