最初のコンテキストでは、phpforeachループで取得したビデオサムネイルを表示する非常に基本的な画像カルーセルがあります。ユーザーがサムネイルをクリックすると、対応するビデオが上記のdivに読み込まれます。カルーセルはうまく機能しますが、それをdivに送信するonclickイベントは機能しません。
実行したい次のコード行があり、コードエディタに正しいと表示されますが、ブラウザで実行すると、sytaxエラー「UnexpectedToken」が表示され、コードが機能しなくなります。
echo "<li><a href='javascript:void(0);' onClick='setVideo(" .$youtube_link. "," .$type. "," .$video_title. "," .$custom_description. "," .$postURL. ");'>";
print_thumbnail($featured_thumb,"thumbnail",$youtube_link);
echo "</a></li>";
そのため、代わりに次のコードを使用しました。
echo '<li><a href="javascript:void(0);" onClick="setVideo(\'' . $youtube_link . '\', \'yt\',\'' . $video_title . '\',\'' . $custom_description . '\',\'' . $postURL . '\' );">';
print_thumbnail($featured_thumb,"thumbnail",$youtube_link);
echo "</a></li>";
} ?>
このコードは機能し、ビデオをdivに入れますが、特定のビデオサムネイルをクリックすると、「予期しない識別子」エラーが返され、機能しません。サムネイルごとに送信されるデータを確認しましたが、一部のサムネイルでは機能するが他のサムネイルでは機能しないようにするために、各サムネイルの間に違いは見られませんでした。エラーも一貫しており、毎回同じ投稿にとどまります。だから私の質問は、JQueryからのエラーなのか、それともJQueryに送信されるデータのエラーなのかということです。
これは対応するJQuery関数です。
function setVideo(videoID, playerType, postTitle, postExcerpt, postURL ){
width = 720;
height = 405;
if( playerType == 'yt' ) {
$('#video_player').replaceWith("<iframe id='video_player' class='youtube-player' type='text/html' width='"+ width +"' height='"+ height +"' src='http://www.youtube.com/embed/" + videoID + "?hd=1&html5=1&rel=0&autohide=1&showinfo=0' frameborder='0' ></iframe>");
}
}