2009-12-29 5 views
0

페이지로드시 대화 상자를 정의했습니다. 나는 대화 상자를 볼 수있는 모든 것을 지금까지 잘 될 것 같다 :jquery 대화 상자가 닫히지 않음

dlg1 = $("#modalHolder"); 
dlg1 = dlg1.dialog({ 
    width: 300, 
    height: 150, 
    modal: true, 
    autoOpen: false, 
    resizable: false, 
    closeOnEscape: false, 
    draggable: false, 
    overlay: { 
     backgroundColor: 'red', 
     opacity: 0.65 
    }, 
    open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); } 
}); 

가 지금은 동적으로 가까운 이벤트를 설정하려는, 그래서 나는이 시도 :

function setCloseFunction(fun) 
{ 
    dlg1.dialog({ 
     close: function(event, ui) 
     { 
      alert("2"); 
      fun(); 
     } 
    }); 
} 

내가로 전화를 :

setCloseFunction(new Function("alert('1')")); 

그러나 대화 상자를 닫을 때 경고가 나타나지 않습니다. 어떤 아이디어? 당신은 다음을 작성해야

+0

당신은 사용하지 말아야 'Function' 생성자는 함수를 생성합니다. 대신에,'function() {alert ('1'); }'. – SLaks

+0

팁 주셔서 감사. – vikasde

답변

0

:

dlg1.bind('dialogclose', function(event, ui) { 
    alert("2"); 
    fun(); 
}); 

setCloseFunction(function() { alert('1'); }); 

편집 : 기능을 제거하려면 unbind('dialogclose')를 호출 할 수 있습니다.

+0

슬랙스에 감사드립니다. – vikasde

1

setCloseFunction에 사용 된 구문은 대화 상자를 초기화 할 때만 정확합니다. 대화 상자가 이미 존재하는 경우, 귀하의 경우, 당신은 일반적으로 다음과 같이 옵션을 변경 : 이벤트의

dlg1.dialog('option', optionName, value); 

close, 당신은 여기에 리스너 바인딩 :

dlg1.bind('dialogclose', function(event, ui) { 
    ... 
}); 
+0

감사합니다. 그게 효과가 있었어. – vikasde

+0

dialogClose에서 동일한 기능을 지금 어떻게 제거합니까? – vikasde

+1

'unbind' 함수를보십시오 : http://docs.jquery.com/Events/unbind#typefn –

관련 문제