Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.06.2016, 05:02
Интересующийся
Отправить личное сообщение для semen17 Посмотреть профиль Найти все сообщения от semen17
 
Регистрация: 29.02.2016
Сообщений: 13

Удаляется не то, что нужно
Здравствуйте. Сильно прошу не ругать Мало что понимаю в 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);
}
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2016, 07:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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);
}
Ответить с цитированием
  #3 (permalink)  
Старый 03.06.2016, 13:51
Интересующийся
Отправить личное сообщение для semen17 Посмотреть профиль Найти все сообщения от semen17
 
Регистрация: 29.02.2016
Сообщений: 13

Да, все равно не работает, только одно условие выполняется, даже если поменять класс на элемент.
Может подскажите как поступить в данной ситуации?
Ответить с цитированием
  #4 (permalink)  
Старый 03.06.2016, 14:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

semen17,
можно только гадать, в предоставленном коде даже класса 'jwplayer' нет, как оно у вас в реальности неизвестно.
Ответить с цитированием
  #5 (permalink)  
Старый 03.06.2016, 15:17
Интересующийся
Отправить личное сообщение для semen17 Посмотреть профиль Найти все сообщения от semen17
 
Регистрация: 29.02.2016
Сообщений: 13

рони,
Несилен я в описании проблемы..., а ещё, судя по всему, самое главное упустил, да и напутал в представленном коде. Просто голова уже кипит. Знаний мало, а хочется именно так
Знал бы как в компоненте 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 только одно условие, всё работает, а вот два условия уже нет.

Если вопрос будет решён, готов отблагодарить не только + и кучей слов благодарности, но и материально. Просто эта ситуация меня уже напрягает:\
Ответить с цитированием
  #6 (permalink)  
Старый 03.06.2016, 15:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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 не мой профиль.
Ответить с цитированием
  #7 (permalink)  
Старый 03.06.2016, 15:48
Интересующийся
Отправить личное сообщение для semen17 Посмотреть профиль Найти все сообщения от semen17
 
Регистрация: 29.02.2016
Сообщений: 13

рони,
Этот вариант я уже пробывал К сожалению он не срабатывает. Но всё равно спасибо. Буду искать дальше решение. И спасибо за потраченное на меня время.
Ответить с цитированием
  #8 (permalink)  
Старый 03.06.2016, 17:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

semen17,
в консоли запустите код из поста 2, если сработает сделайте через window.setTimeout, лучше бы конечно на сервере это сделать.
Ответить с цитированием
  #9 (permalink)  
Старый 03.06.2016, 18:39
Интересующийся
Отправить личное сообщение для semen17 Посмотреть профиль Найти все сообщения от semen17
 
Регистрация: 29.02.2016
Сообщений: 13

рони,
В консоли всё сработало как надо, попробую через window.setTimeout, если разберусь в синтаксисе
Ответить с цитированием
  #10 (permalink)  
Старый 03.06.2016, 18:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

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);
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замыкание как аякс функция и ее данные Zalex Общие вопросы Javascript 0 06.06.2015 15:16
Что нужно, чтобы открывало ссылку, каждые 3 секунды wack Общие вопросы Javascript 8 26.02.2015 14:51
Что нужно дописать в коде чтобы изображение менялось постоянно. vadim90k (X)HTML/CSS 22 09.07.2012 16:33
Поюзайте хомячка Nanto Ваши сайты и скрипты 30 06.06.2011 22:16
Что нужно знать для изучения серверного javascript Иваннн Серверные языки и технологии 26 15.06.2010 16:05