How determine which object/image was clicked using javascript/html -


essentially, have page 100 image thumbnails being displayed in form:

   document.getelementbyid('response').innerhtml += "<a href='#'><img src=" + responseobject.items[0].snippet.thumbnails.high.url + " /></a>";    document.getelementbyid('response').innerhtml += "<a href='#'><img src=" + responseobject.items[1].snippet.thumbnails.high.url + " /></a>";    document.getelementbyid('response').innerhtml += "<a href='#'><img src=" + responseobject.items[2].snippet.thumbnails.high.url + " /></a>"; 

and on. if matters, i'm dealing array of objects made of parsed json. anyway, when user clicks on 1 of images, need call function, showvideo, , need know image item (items[1], items[2]) clicked can pass function , display embedded youtube player item. in rough terms, function might like:

function showvideo(itemclicked){    document.getelementbyid('thevideo').innerhtml = "<iframe width='420' height='345' src=http://www.youtube.com/embed/" + responseobject.items[itemclicked].id.videoid + " /></iframe>" } 

i've been reading couple hours, can't seem stumble upon clean way this. ideas? i'd stick javascript keep things simple me now.

you may want use for() loop create each of <a>:

var responseobject={};      responseobject.items=[    	{snippet:{thumbnails:{high:{url:'http://lorempixel.com/50/5'}}}, id:{videoid:`a1213131`}},    	{snippet:{thumbnails:{high:{url:'http://lorempixel.com/50/5'}}}, id:{videoid:`b1213131`}},    	{snippet:{thumbnails:{high:{url:'http://lorempixel.com/50/5'}}}, id:{videoid:`c1213131`}}    	];    (var = 0; < responseobject.items.length; i++) {    //create anchor    var = document.createelement('a');    //set href property    a.href = '#';    //insert thumbnail    a.innerhtml = "<img src=" + responseobject.items[i].snippet.thumbnails.high.url + + " />";    //add click event    a.addeventlistener('click', function(e) {      //prevent act anchor;      e.preventdefault();      //insert iframe #thevideo         //note if iframe setted up, may better change src property document.queryselector(thevideo>iframe).src=...      document.getelementbyid('thevideo').innerhtml = "<iframe width='420' height='345' src=http://www.youtube.com/embed/" + responseobject.items[this].id.videoid + " /></iframe>" +        //only snippet example        "<p>http://www.youtube.com/embed/" + responseobject.items[this].id.videoid + "</p>";    }.bind(i)); //.bind(i) make our `i` var correspond `this` var of fired event.    // append newly created <a> #response div    document.getelementbyid('response').appendchild(a);  }
<div id="response"></div>  <div id="thevideo"></div>


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -