1

我有一些作为教程制作的演示视频,我正在使用链接打开一个对话框并将演示视频放入该框中。

当用户选择查看完整的笔记时,我使用相同的 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({ 模态:真, 关闭:函数(){ jQuery('div#showNote').dialog('destroy').empty(); } }); });

我用于演示视频的代码非常相似。

jQuery('a.demoVid').click(function(){
         var videoUrl=jQuery(this).attr('href');
       jQuery('div#showNote').dialog({
       模态:真,
    身高:400,
    宽度:480,
    关闭:函数(){
    jQuery('div#showNote').dialog('destroy').empty();
    }
    });
    swfobject.embedSWF(videoUrl,'showNote','480','390','8.0.0');
 返回假;
 });

我可以点击任意数量的笔记,对话框打开并显示笔记。但是,当我单击 demoVid 时,对话框会打开,但随后关闭对话框会杀死页面上的任何其他“showNote”对话框,因此我无法再打开任何笔记或演示视频。

4

2 回答 2

3

您的对话框正在定位div#showNote,并且元素 ID 在文档中必须是唯一的。您应该更改它,以便div为每个对话框实例创建一个新实例,如下所示(未经测试):

jQuery( $('<div class="note">') ).dialog({ ... 
   close: function() {
     $(this).dialog('destroy').empty();
   }
});
于 2010-04-16T04:01:51.027 回答
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');
于 2010-04-16T05:23:03.467 回答