2011-02-18 4 views
2

jQuery UI 모달 대화 상자 내에서 Uploadify를 사용하고 Ajax를 사용하여 데이터를 제출합니다. 그런 다음 모달 대화 상자를 다시 사용하여 파일을 더 업로드 할 수 있습니다. 나는 거의 그것을 지금 일하고있다. 그러나 여기에서는 나의 문제 다.새로 고침 (또는 다시 초기화) jQuery UI 모달 대화 상자에서 Uploadify

모달 상자가 두 번 열리고 Uploadify를 사용하여 파일을 추가하면 대기열에 두 번 나타납니다. 모달 상자를 세 번 열어 파일을 추가하면 대기열에 3 번 나타납니다 (등등). 내가 모달 대화 양식을 닫을 때

, 나는 (JQuery와 UI 모달 대화 상자의 닫기 기능에서 호출) 다음 코드를 사용

function DestroyUploadifyInstance(){ 
$('#image_nameQueue').remove(); 
$('#image_nameUploader').remove(); 
} 

내가 모달 대화 양식을 열

, I (코드 실제로 중복 파일이 표시 되더라도 작동하기 때문에,

function CreateUploadifyInstance(){ 
$('#image_name').uploadify({ 
'uploader' : 'uploadify.swf', 
'script' : 'uploadify.php', 
'cancelImg' : 'cancel.png', 
etc 

나는 거의 내가 같은 느낌을 : (이이 jQuery를 UI 모달 대화 상자의 열기 함수에서 호출) 다시 uploadify 코드를 호출 각 파일을 여러 번 업로드하지 않음).

중복 큐 항목이 표시되는 것을 어떻게 중지시킬 수 있습니까? 감사합니다. .

+0

그 코드의 좀 더 보지 않고 문제를 해결하기 어렵다. 그러나 나는 uploadify 플러그인이 여전히 초기화되어 있기 때문에 문제가 발생했다고 가정합니다. 거의 당신이 코드를 움직여 대화 상자 생성에서 초기화하고 다른 곳에 추가 할 수있는 것처럼 보입니다. – Loktar

+0

감사합니다. image_name은 대화 상자 양식의 일부이므로 작동하지 않을 것이라고 생각합니다. – Stevio

답변

2

Uploadify는 uploadifySelect 이벤트에 대한 핸들러를 사용자가 호출하는 요소에 바인드하여 큐 항목을 추가합니다. DestroyUploadifyInstance에서 이것을 바인딩 해제하지 않으면 CreateUploadifyInstance를 호출 할 때마다 이벤트 핸들러 체인이 커지므로 복제본의 원인이됩니다.

function DestroyUploadifyInstance() 
{ 
    $("#image_name").unbind("uploadifySelect"); 
    $('#image_nameQueue').remove(); 
    swfobject.removeSWF('image_nameUploader'); 
} 

이/재 초기화 사업 방식으로이 숨겨져 때 플래시 객체를 처리 인해이 보인다 IE에서만 필요 파괴, 그래서 그것을 브라우저에 의존하고 FF에 대한 uploadify 할 수있는 단일 호출 스틱 것 , Chrome 등을 사용할 수 있습니다.

1

당신이 uploadifySettings()를 사용할 수 있습니다

var news_id = $(this).attr('news_id'); 
$("#image_name").uploadifySettings('script', 'http://example.com/upload.php?news=' + news_id); 
관련 문제