2012-06-28 3 views

답변

1
(function($){ 
    var _init = $.ui.dialog.prototype._init; 
    $.ui.dialog.prototype._init = function(){ 
     var self = this; 
     _init.apply(this,arguments); 
     $('.ui-widget-overlay').live('click', function(){ 
      if (self.options['overlay_close']){ 
       self.destroy(); 
      } 
     }); 
    } 
})($); 
+2

:) 놀라운! 당신은 대답하기 위해 질문을했습니다. 희망은 누군가에게 유용 할 것입니다! –

+0

아무 문제가 없습니다. 그래서 지식을 저장할 수있는 완벽한 장소이므로 나중에 돌아보고 다시 볼 수 있습니다. 사람들은 항상 여기에서 그것을한다! 참조 : http://meta.stackexchange.com/questions/17845/etiquette-for-answering-your-own-question – lbstr

+0

@lbstr 물론,하지만 새로운 질문에 대한 방아쇠를 당했고 그 답을 보았습니다. 5 초 후! 응답자가 실제로 O.Poster 였음을 깨달으면 - 그것은 내 하루를 만들었습니다! +1 : –

0

자체 제공 답변이 효과가 있다면 더 좋을 것입니다.

대화 상자 바깥을 클릭해도 응답이 없습니다. 여기에 내 jsFiddle 테스트 용입니다.

어쩌면 내가 잘못하고있는 것이지만 원하는 기능을 수행하지 않는 것 같습니다.

@JamesLin이 주요 통찰력을 제공했습니다. 내 초기화에 새 옵션을 추가해야했습니다.

$("#myDialog").dialog({ 
    overlay_close:true, 
    modal: true 
}); 

jsFiddle도 업데이트되었습니다.

+1

가 작동해야합니다. 대화 상자를 초기화 할 때이 옵션 "overlay_close : true"가 누락되었습니다. 또한이 트릭을 수행 한 "live" –

+0

으로 바인딩을 변경했습니다. –

관련 문제