2011-07-22 55 views
0

我正在使用jQuery Mobile创建一个网站,该网站将在其中一个页面上显示嵌入的YouTube剪辑。延迟jQuery Mobile转换以隐藏嵌入的Youtube视频

我的问题是,当用户试图导航到另一个页面时,嵌入对象在转换过程中仍然“覆盖”页面。结果是视频在第二页上出现一瞬间,看起来不太好。

我试过在点击链接时使用.hide(),并尝试创建超时但无济于事 - 有人可以推荐解决方案吗?

回答

0

事实证明我并没有捕获正确的事件 - 我被检查的点击,当我需要绑定到一个“水龙头”事件,像这样:

$("#link").live('tap',function(){ 
    $("#video").hide(); 
}); 
0

您必须从页面中删除实际的视频;这也发生在每个浏览器上,因为Flash通常出现在所有其他内容上。

+0

感谢您的回答,但事实证明.hide()正常工作,请参阅下面的答案。 – Ger

0

您可以使用“pagebeforehide”事件来删除Flash视频,但是您也可以使用YouTube的iframe嵌入方法来显示视频而不是嵌入标记(我没有使用iframe方法持久性Flash对象存在问题)。

 
$('#youtube_page_id').live('pagebeforehide', function() { 
    $('#youtube_embed_id').remove(); 
}); 
 
<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/VIDEO_ID" frameborder="0"> 

另一个好处是用与YouTube的IFRAME方法是YouTube将检测到用户在所述设备和显示适当的类型的视频。例如,如果用户在iPhone上,则YouTube会显示HTML5视频而不是Flash视频。

+0

虽然iframe解决方案确实解决了显示/隐藏视频的问题 - 它不如嵌入式闪存对象那么优雅。例如,视频不会像闪光灯一样缩放,还会将视频标题显示为叠加层,这会导致播放器在移动设备上看起来非常拥挤。此外,行为似乎不稳定 - 有时视频会立即播放为html5视频,而其他时候则会移动移动版YouTube网站。谢谢你的回复,都一样:-) – Ger