Включая несколько раз файлы PHP, в которых есть скрипт jquery, скрипт не запускается в каждом экземпляре

У меня есть php-файл, который требуется много раз, включает небольшой фрагмент jquery, который должен запускаться при каждом включении php-файла. Тем не менее, похоже, что jquery выполняется все сразу в конце, потому что я получаю значение переменных сразу, а не в каждом экземпляре. Так что мой PHP-файл, который включает в себя другой PHP-файл, количество раз
base-features.php

<?php

$youtubelinks = array(
'0' => 'https://www.youtube.com/embed/NilASeqRsjw'
'1' => 'https://www.youtube.com/embed/eXG8PbwmUJw'
);

foreach($youtubelinks as $key => $val) {
$ytlink = $val;
require('youtubelink.php');

}

На моем youtubelink.php Я могу видеть $ytlink переменная

  <div id="page-corporate-video-overlay" class="page-corporate-video-overlay">
<div class="container">
<div class="row block">
<div class="col-md-12">
<?php print $ytlink ?>
<p><span class="video-play-icon"></span><p>
</div>
</div>
</div>
</div>
<div class="page-corporate-video">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="inner">
<iframe id="corporate-video" class="page-corporate-video-iframe" width="100%" height="100%" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</div><!--The jquery script I am having problem with-->
<script type="text/javascript">
jQuery(document).ready(function() {
var videoYoutube = "<?php print $ytlink; ?>"
$('.page-corporate-video-overlay').click(function() {
$('html, body').animate({
scrollTop: $(this).closest("div.page-corporate-video-overlay").offset().top-15
}, 500);

$(this).hide();

console.log(videoYoutube);
$(this).closest('div.base-feature').css({'background-image':'none','height':'auto'});
$(this).next('div.page-corporate-video').find('.page-corporate-video-iframe').attr('src',videoYoutube+"?controls=0&rel=0&showinfo=0&enablejsapi=1&autoplay=1&modestbranding=1&theme=light");
$(this).next('div.page-corporate-video').show();
});
});

Поэтому, когда я нажимаю на .page-corporate-video-overlay', I get two values of theПеременная videoYoutube`. Это вызывает у меня проблемы с встраиванием правильного видео в iframe, так как в него вставляется только последнее значение вместо каждого iframe, получающего относительное значение переменной youtube во время каждого экземпляра цикла.

0

Решение

Благодаря комментарию @reedn-m я реорганизовал свой код в соответствии с его предложением.

Refactored youtubelink.php

Все почти так же, за исключением того, что я добавил дополнительный атрибут на div.page-corporate-video-overlay из data-ytlink ="<?php print $ytlink;?>" и на моем Jquery в моем событии функции щелчка я добавил

 var videoYoutube = $(this).attr('data-ytlink');

Теперь я могу правильно вставлять видео.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector