2010-04-16 9 views
1

자습서로 사용한 데모 비디오가 몇 개 있는데, 대화 상자를 열고 데모 비디오를 넣으려는 링크를 사용하고 있습니다. 상자.jQuery 대화 상자가 닫힌 후 깨짐 - 대화 상자가 손상되었습니다.

사용자가 전체 메모를보기로 선택할 때 동일한 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'대화 상자가 없어져 더 이상 메모 나 데모 비디오를 열 수 없습니다.

답변

2

내 두 번째 추측은 swfobject.embedSWF에 대한 호출이 일부에서 DIV 번호의 showNote에 짓밟고된다는 것이다 jQuery를 혼란스럽게 만든다. 대화 상자 안의 div에 비디오를 넣으려고합니다.

jQuery('div#showNote').append('<div id="showVideo"></div>').dialog({ ... }); 
swfobject.embedSWF(videoUrl,'showVideo','480','390','8.0.0'); 
+0

감사합니다. Tom, 당신은 절대적으로 옳았습니다. swfobject는 무언가를 짓밟고있었습니다. 감사. – pedalpete

2

대화 상자의 대상은 div#showNote이며, 요소 ID는 문서에서 고유해야합니다. 이 (안된) 다음과 같은 뭔가 각 대화 인스턴스에 대한 새로운 div을 만들고, 그래서 당신은 그것을 변경해야합니다 :

jQuery($('<div class="note">')).dialog({ ... 
    close: function() { 
    $(this).dialog('destroy').empty(); 
    } 
}); 
+0

정확하게 이해할 수 있을지 모르거나 서로를 오해 할 수 있습니다. 페이지에는 div # showNote가 하나만 있습니다. 내가 demoVid의 결과를 넣은 것과 같은 div에 메모를 둡니다. 어쨌든 두 개는 동시에 열 수 없으므로 페이지에 다른 div를 추가하는 대신 이미 div가 사용됩니다. – pedalpete

+0

좋아, 네가 "showNote 대화 상자를 죽이기"란 뜻을 오해 한 것입니다. 즉, 그 시점부터 열지 못하게하고, 열려있는 것들은 닫지 않습니다. – Tom

관련 문제