首先是一些上下文,我有一个非常基本的图像轮播,它显示我通过 php foreach 循环抓取的视频缩略图。当用户点击缩略图时,它会将相应的视频加载到上面的 div 中。轮播效果很好,但是将其发送到 div 的 onclick 事件却没有。
好的,我想要执行以下代码行,代码编辑器说它是正确的,但是当我在浏览器中运行它时,我收到一个语法错误“Unexpected Token”,并且代码最终无法正常工作。
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>");
}
}