2012-03-20 4 views
4

아래와 같이 id가 설정된 Jquery 대화 상자가 있습니다. document.ready바인드 대화 상자 이벤트

$('#modal-id').dialog({ autoOpen: false, ...... }) 

에서와

<div id="modal-id"> 
<div class="modal-content"> 
..... 
</div> 
</div> 

HTML

에서

는 지금은 대화의 오픈 이벤트를 바인딩해야합니다.

$("#modal-id").bind("dialogopen", function(event, ui) { 
.... 
}); 

위의 작동하지만 아래

$(".ui-dialog-content").bind("dialogopen", function(event, ui) { 
... 
}); 

어떤 제안이 크게 감사합니다 작동하지 않습니다.

업데이트 :

$(".ui-dialog").live("dialogopen", function(event, ui) { 
$.getScript("/common/js/jquery.curvycorners.min.js", function() { 
}); 
}); 
+1

왜 이벤트를 UI 대화 상자 콘텐츠에 바인딩해야합니까? – mgibsonbr

+0

모든 대화 상자에서 사용할 수 있도록 –

답변

6

첫째, 당신이 원하는 클래스가 .ui-dialog-content 생각하지 않지만, ui-dialog는 (그래도 난 잘못 될 수도 있습니다). 나의 제안 (옛 jQuery를 사용하는 경우 또는 live)을 on 방법을 사용하는 것입니다 :

$(document).on("dialogopen", ".ui-dialog", function(event, ui) { 
    ... 
}); 

jsFiddle에서 예를 들어 작업.

+0

좋은 답변, 바인딩을 사용하여 UI 대화 상자를 시도했지만 라이브가 아닙니다. 고마워 :) –

+0

나는 지금 다른 문제가 있는데,이 함수 안에 getScript를 삽입했지만 작동하지 않는다. 어떤 아이디어? 정보 업데이트를 확인하십시오. –

+0

필자는 getScript를 사용한 적이 없으므로 도움을 줄 수있는 방법이별로 없습니다. 'success' 외에도'error' 함수를 사용하여 간단한 '$ .ajax' 호출로 표현하는 것이 좋습니다. (http://api.jquery.com/jQuery.getScript/). 문제가 ajax 호출에있는 경우 표시됩니다. – mgibsonbr