我有一些我作为教程制作的演示视频,我正在使用链接打开一个对话框并将演示视频放在该框中。
当用户选择查看完整音符时,我使用相同的div在页面上显示其他音符。
我用来显示笔记的代码是
jQuery('span.Notes').live('click', function(){ var note=jQuery(this).data('note'); jQuery('div#showNote').text(note); jQuery('div#showNote').append('
'); jQuery('div#showNote').dialog({ modal: true, close: function(){ jQuery('div#showNote').dialog('destroy').empty(); } }); });
我用于演示视频的代码非常相似。
jQuery('a.demoVid').click(function(){ var videoUrl=jQuery(this).attr('href'); jQuery('div#showNote').dialog({ modal: true, height: 400, width: 480, close: function(){ jQuery('div#showNote').dialog('destroy').empty(); } }); swfobject.embedSWF(videoUrl,'showNote','480','390','8.0.0'); return false; });
我可以点击任意数量的笔记,然后打开对话框并显示笔记。 但是,当我单击demoVid时,对话框会打开,但是关闭对话框会导致页面上任何其他“showNote”对话框被删除,因此我无法再打开任何笔记或演示视频。
答案 0 :(得分:3)
您的对话框正在定位div#showNote
,元素ID在文档中必须是唯一的。您应该更改它,以便为每个对话框实例创建一个新的div
,如下所示(未经测试):
jQuery( $('<div class="note">') ).dialog({ ...
close: function() {
$(this).dialog('destroy').empty();
}
});
答案 1 :(得分:3)
我的第二个猜测是对swfobject.embedSWF的调用是以某种混淆jQuery的方式践踏div#showNote。我会尝试将视频放在对话框中的div中:
jQuery('div#showNote').append('<div id="showVideo"></div>').dialog({ ... });
swfobject.embedSWF(videoUrl,'showVideo','480','390','8.0.0');