JSFiddle - React, Tailwind, and code Playground

by fredd man

HTML

<script src="https://apis.google.com/js/client.js?onload=onClientLoad"></script>
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<div class="search-container">
  <div class="search">
    <input id="queryInput" class="search-bar"  type="text">
    <button id="searchButton" class="search-button">
      GO
    </button>
  </div>
</div>

<div id="youtube-channel" class="main-container"> </div>



<script type="text/javascript" src="https://embed-ssl.wistia.com/deliveries/9b0ed3b4fd7a2eb3049b51cd26b48b9c0300e7b9.bin?disposition=attachment&filename=jwplayer6.10.js"></script>
        <script type="text/javascript">jwplayer.key = "Q1Ft5yFT0nJBlCFnQAvJ7nC+uwr628IgJBzoCAnnn3tGVqUiRjtloYRetCh+EbI0";</script>

<a href="http://www.youtube.com/watch?v=xtfzFMdUM5M">Meerkat Polka Band Play Corrie Theme Tune #meerkatband</a>
<a href="http://www.youtube.com/watch?v=MrHu0Kpk8cU">Sony Bravia - Balls (HD)</a>
<div id="player"> </div>

JavaScript

//2016 mizTech NTU ESOE mikeZheng 
var musicCards = [];

$(document).ready(function() {
    //替按鈕綁上事件
    $("#searchButton").on("click", function() {
        var query = $("#queryInput").val();
        //簡單防呆一下
        if (query != "") {
            loadYoutubeService($("#queryInput").val());
            console.log(query + " 搜尋中..");
        }
    });
});




//向google 使用youtube服務
function loadYoutubeService(query) {
    gapi.client.load('youtube', 'v3', function() {
        gapi.client.setApiKey('AIzaSyCRwMuGP50aOvrptyXRZtveE50faOLb8R0');
        search(query);
    });
}



//搜尋
function search(query) {
    //對於搜尋上的其他功能可以參考googleapi
    //https://developers.google.com/youtube/v3/docs/search/list#maxResults
    var request = gapi.client.youtube.search.list({
        part: 'snippet',
        q: query,
        maxResults: 24
    });

    request.execute(function(response) {
        //將結果把所需部分進行擷取
        $.each(response.items, function(i, item) {
            if (!item['id']['playlistId']) {
                var musicCard = {};
                musicCard._id = item['id']['videoId'];
                musicCard.title = item['snippet']['title'];
                musicCard.url = "https://www.youtube.com/embed/" + musicCard._id;
                musicCard.description = item['snippet']['description'];
                musicCards.push(musicCard);
            }
        });
        // console.log(musicCards);
        //將VIEW抽出來另外生成
        renderView();
    });
}



function renderView() {
    var htmlString = "";
    musicCards.forEach(function(musicCard, i) {
        var card = createCard(musicCard._id, musicCard.title, musicCard.description, musicCard.url);

        htmlString += card;
    });

    $('#youtube-channel').html(htmlString);

}




function createCard(_id, title, description, url) {
    var card =
    'div id="player_container">'+
    '<a href="'+url+'">https://www.youtube.com/embed/' + _id + '</a>' + 
        '<div class="card">' +
        '<div class="info">' +
...