私のページには、それぞれが format と src の 2 つの属性を持つ多くのリンクがあります。
<a class="play" src="'.$p['video_path'].'" format="'.$p['video_type'].'"></a>
クリックしたものは2つの属性を取得し、jsでHTMLを次のように作成します。
$(".play").live('click',function() {
var src = $(this).attr('src');
var fmt = $(this).attr('format');
var html = '<video width="200" height="240" controls> <source src="'+src +'" type="video/'+ fmt +'"> </video>';
$("#myVideoDiv").html(html);
$.mobile.changePage( $("#myVideoDiv"), { transition: 'pop' } );
});
<div data-role="dialog" id="myVideoDiv"></div>
動画リンクをクリックすると、ブラウザの URL が次のように変わります
http://pp.local/maps/maps/40295472#&ui-state=dialog
しかし、白い画面だけを表示するものはありません。動作してい$("#myVideoDiv").html( html );
ますが、Firbug を介して HTML を見ることができます。Firebug にエラーや警告はありません:(
基本的に私がする必要があるのは、以下のコードのような通常のjquery UIで行うように、jqueryモバイルダイアログで各ビデオを表示したいということです。ここでも同じことをする必要がありますが、jqueryモバイルダイアログを使用します。
$(".watchVideo").live('click', function() {
if( $('div.ui-dialog').length ) {
$('div.ui-dialog').remove();
}
var path = $(this).attr('rel');
var title = $(this).attr('title');
var $dialog = $('<div>', {
title: 'Title'
}).dialog({
autoOpen: false,
modal: true,
width: 600,
height: 500,
closeOnEscape: false
});
var tab = '<table id="video_player" style="margin: 10px 10%;"><tr><td><object codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"><param value="'+path+'" name="src"><param value="true" name="autoplay"><param value="true" name="controller"><embed pluginspage="http://www.apple.com/quicktime/download/" controller="true" style="height:300px;width:400px;background-color:#D9EBFB" autoplay="true" target="myself" src="'+path+'"></object></td></tr></table>';
$('<div id="updateContent">').html( tab ).appendTo( $dialog );
$dialog.dialog('open');
return false;
});