Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2017, 10:22
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Не работает клик по плейлисту
Доброго времени суток, форумчане, подскажите пожалуйста, почему не работает клик по плейлисту
<!DOCTYPE html>
<html>
<head>
	<title>Видеопортлет</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
	<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>  
</head>
<body>
<ul id="playlist">
  <H1>Плейлист:</H1>
  </ul>

     <video id="videoarea" controls="controls" width="640" height="480" poster="" src=""></video>
     
     <script>
 
    $.getJSON('playlist.json', function(data) {
        console.log(data);
            for(var i=0;i<data.playlist.length;i++){
              $('#playlist').append('<li>' + data.playlist[i].moviename + '</li>');
             $("#playlist li").attr({
            "movieurl": data.playlist[i].movieurl,
            "moviesposter": data.playlist[i].moviesposter           
        })
    };
});
  
 
    
     $('#playlist li').on('click', function() {
        $("#videoarea").attr({
            "src": $(this).attr("movieurl"),
            "poster": $(this).attr("moviesposter"),
            "autoplay": "autoplay"
        })
    });
         
    $("#videoarea").attr({
        "src": $("#playlist li").eq(0).attr("movieurl"),
        "poster": $("#playlist li").eq(0).attr("moviesposter")
    });
  
  
 
  /* запрет контекстного меню на всех элементах video на странице*/
    $('video').bind('contextmenu', function(e) {
        return false;
    });

</script>
    <style>
      #playlist {
    display:table;
}
#playlist li{
    cursor:pointer;
    padding:8px;
}

#playlist li:hover{
    color:blue;                        
}
#videoarea {
        /*float:left;*/
    width:640px;
    height:480px;
    margin:10px;    
    border:1px solid silver;
}
      #playlist {
      float:left;
      }
      
      
      
      video::-internal-media-controls-download-button {
    display:none;
}

video::-webkit-media-controls-enclosure {
    overflow:hidden;
}

video::-webkit-media-controls-panel {
    width: calc(100% + 30px); /* Adjust as needed */
}
        </style>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2017, 10:25
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Сначала вывожу информацию из json файла ({
"playlist": [{
"moviename" : "Видео1",
"movieurl": "mult.jpeg",
"moviesposter": ""
}, {
"moviename" : "Видео2",
"movieurl": "mult.jpeg",
"moviesposter": ""
}, {
"moviename" : "Видео3",
"movieurl": "mult.jpeg",
"moviesposter": ""
}]
})
в теги <li>, это работает
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2017, 10:30
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

https://cloud.mail.ru/public/A6R7/K5Z9rLAbM
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2017, 10:30
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Ответить с цитированием
  #5 (permalink)  
Старый 06.02.2017, 10:33
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

В консоли браузера вижу, что аттрибуты тега <li> заполнены данными из json файла
<ul id="playlist">
  <h1>Плейлист:</h1>
<li movieurl="mult.jpeg" moviesposter="">Видео1</li>
<li movieurl="mult.jpeg" moviesposter="">Видео2</li>
<li movieurl="mult.jpeg" moviesposter="">Видео3</li>
</ul>

     <video id="videoarea" controls="controls" width="640" height="480" poster="" src=""></video>
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2017, 10:34
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

Т.е. список есть, а клик по нему не срабатыват почему то
$('#playlist li').on('click', function() {
        $("#videoarea").attr({
            "src": $(this).attr("movieurl"),
            "poster": $(this).attr("moviesposter"),
            "autoplay": "autoplay"
        })
    });
Ответить с цитированием
  #7 (permalink)  
Старый 06.02.2017, 11:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

AlexTrader,
<!DOCTYPE html>
<html>
<head>
  <title>Видеопортлет</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
   <style>
      #playlist {
    display:table;
}
#playlist li{
    cursor:pointer;
    padding:8px;
}

#playlist li:hover{
    color:blue;
}
#videoarea {
        /*float:left;*/
    width:640px;
    height:480px;
    margin:10px;
    border:1px solid silver;
}
      #playlist {
      float:left;
      }



      video::-internal-media-controls-download-button {
    display:none;
}

video::-webkit-media-controls-enclosure {
    overflow:hidden;
}

video::-webkit-media-controls-panel {
    width: calc(100% + 30px); /* Adjust as needed */
}
        </style>
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body><H1>Плейлист:</H1>
<ul id="playlist"></ul>

     <video id="videoarea" controls="controls" width="640" height="480" poster="" src=""></video>

     <script>
 var data = {
 "playlist": [{
 "moviename" : "Видео1",
 "movieurl": "http://www.w3schools.com/Tags/mov_bbb.mp4",
 "moviesposter": "http://mkrf.ru/upload/iblock/5c8/5c81e230bc528d6570181d6465d19200.jpg"
 }, {
 "moviename" : "Видео2",
 "movieurl": "http://www.w3schools.com/Tags/mov_bbb.mp4",
 "moviesposter": "http://centromujer.republica.com/files/2014/04/rio-2-trailer.jpg"
 }, {
 "moviename" : "Видео3",
 "movieurl": "http://www.w3schools.com/Tags/mov_bbb.mp4",
 "moviesposter": "http://dreammobile.ucoz.ru/_ld/1/12924.jpg"
 }]};
 function s(b) {
    $.each(b.playlist, function(b, a) {
        b || $("#videoarea").attr({
            src: a.movieurl,
            poster: a.moviesposter
        });
        $("<li>", {
            click: function() {
                $("#videoarea").attr({
                    src: a.movieurl,
                    poster: a.moviesposter,
                    autoplay: "autoplay"
                })
            },
            text: a.moviename
        }).appendTo("#playlist")
    })
};
//$.getJSON('playlist.json',s) раскомментровать
s(data)//убрать
  /* запрет контекстного меню на всех элементах video на странице*/
    $('video').bind('contextmenu', function(e) {
        return false;
    });

</script>

</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 06.02.2017, 12:58
Кандидат Javascript-наук
Отправить личное сообщение для AlexTrader Посмотреть профиль Найти все сообщения от AlexTrader
 
Регистрация: 23.12.2016
Сообщений: 121

рони,
Спасибо большое!!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему-то не работает событие клик pro_xaoc jQuery 9 22.06.2012 15:01
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
После Добавления в Дом, не работает клик. KamalovRadik jQuery 2 02.11.2011 10:32
в содержимом окна FancyBox не работает событие .click() rafic jQuery 4 01.11.2011 16:59
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41