У меня есть страница, заполненная фильмами, созданными с использованием цикла php foreach, например:
foreach ($movies as $movie) {
$pos = strrpos($movie, '/');
$id = $pos === false ? $movie : substr($movie, $pos + 1);
$image = $lookup[pathinfo($movie, PATHINFO_FILENAME)] ?? $temp;
$sub = $lookup2[pathinfo($movie, PATHINFO_FILENAME)];
$withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $id);
$xml = simplexml_load_file($dir . '/xml/' . $withoutExt . '.xml');
echo '<div class="grid-containerTest">';
if (file_exists($dir . '/xml/' . $withoutExt . '.xml')){
echo '<div class="grid-item item1"><h3>' . $xml->title . '</h3></div>';
}else{
echo '<div class="grid-item item1"><h3>' . $withoutExt . '</h3></div>';
}
echo '<div class="grid-item item2"><video width="300" height="400" poster="'. $image .'" preload="none" id="videoElement">';
echo '<source src="'. $movie .'" type="video/mp4">';
echo '<track src="' . $sub . '" kind="subtitles" srclang="en-US" label="English" />Your browser does not support HTML5 video.</video></div>';
echo '<div class="grid-item item3">' . $xml->overview . '<br /><br />';
echo "Added on: " . date("F d Y.", filectime($movie)) . '</div>';
echo '<br /><br /></div>';
}
Затем в нижнем колонтитуле хранится несколько JS, которые скрывают элементы управления, пока пользователь не наведет на них курсор:
<script type="text/javascript">
(function(window) {
function setupVideo()
{
var v = document.getElementById('videoElement');
v.addEventListener('mouseover', function() { this.controls = true; }, false);
v.addEventListener('mouseout', function() { this.controls = false; }, false);
}
window.addEventListener('load', setupVideo, false);
})(window);
</script>
Работает нормально. Для первого видео, загруженного на страницу. Другие не воспроизводятся, так как на них больше нет элементов управления. Итак, что я могу сделать, чтобы убедиться, что он работает для каждого видео?