Удаляется не то, что нужно
Здравствуйте. Сильно прошу не ругать:) Мало что понимаю в 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, время: 13:52. |