YouTube 동영상의 URL에 포함 된 동영상 ID를 추출한 다음 YouTube를 삽입 할 iframe을 만들 때 참조 할 수있는 변수에 해당 ID를 저장하려고합니다. 비디오.jQuery 변수 범위로 인해 첫 번째 클릭이 작동하지 않습니다.
다음은 내 코드입니다 :
$(".result").live("click", function() {
var result_number = 0;
youtubequery = "https://gdata.youtube.com/feeds/api/videos?category=Music&q=thesongstitle&v=2&alt=json&max-results=5";
youtubeid = "";
$.getJSON(youtubequery, function (vid_data) {
$.each(vid_data.feed.entry, function (e, vid) {
if (e == result_number) {
youtubeid = vid.id.$t.substring(27);
}
});
});
iframehtml = "<iframe height='300' width='400' src='http://www.youtube.com/embed/" + youtubeid + "?autoplay=1' frameborder='0' allowfullscreen></iframe>";
$("#youtube_vid").html(iframehtml);
});
나는 유튜브 ID 변수 iframehtml에 저장된 iframe이 HTML에 포함되지 않습니다 처음 클래스 "결과"의 사업부를 클릭
. 그러나 두 번째 클릭하면 모든 것이 예상대로 작동합니다. 누가이 문제의 원인인지 알 수 있습니까? iframehtml 변수의 생성과 html을 #youtube_vid에 넣는 줄을 포함 시켰을 때 작동하게 만들었지 만, 내 사이트의 기능으로 인해 그렇게 코딩 할 수 없었습니다.
그럼 live() ... –
@ReyGonzales 대신 on()을 사용해야합니다.하지만 그는 실제 문제와 관련이 없을 것입니다. '.live()'는 .on이 추가되었을 때 작동을 멈추지 않았습니다! – Alnitak
'event.preventDefault()'? –