2017-03-20 10 views
0

jQuery UIで遊んでいます。ユーザーがbody要素をクリックすると、ダイアログボックスを動的に表示したかったのです。ダイアログが表示されている間に、私はそれを閉じることはできません。また、ページ読み込み時にダイアログが表示された場合は、閉じることができます。jQuery UIダイアログを閉じることができません

$("body").click(function(e){ 
    $("#dialog").dialog({ 
     title:"Title here", 
     buttons:{ 
      Update:function(){$(this).dialog("close");}, 
      Cancel:function(){$(this).dialog("close");} 
     } 
    }); 
}); 

JSBin

任意のアイデアは、私が何をしないのですか?

+0

されていない場合、私は '$(これは)'「戻ってあなたの '$(への言及だと思い尋ねるこのラインif ($(e.target).find('#dialog').length !== 0) {})

本文 ") –

答えて

1

これはあなたを助けるかもしれません。私たちは私たちがクリックした要素は、当社の$(dialog)

$("body").click(function(e) { 
 
    if ($(e.target).find('#dialog').length !== 0) { 
 
    $("#dialog").dialog({ 
 

 
     title: "Tistle here", 
 
     buttons: [{ 
 
      text: "Update", 
 
      click: function() { 
 
      $("#dialog").dialog("close"); 
 
      } 
 
     }, 
 
     { 
 
      text: "close", 
 
      click: function() { 
 
      $("#dialog").dialog("close"); 
 
      } 
 
     } 
 
     ] 
 
    }); 
 
    } 
 
});
body { 
 
    height: 100vh; 
 
    background-color: red; 
 
}
<link href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" /> 
 
<script src="https://code.jquery.com/jquery-1.11.3.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 

 
<div id="dialog"></div>

+0

ありがとうございました!これはうまくいきますが、なぜ#dialogをクリックしていないかどうかを確認する必要があるかどうかは不明です。あなたに時間があるなら、あなたは精巧にできますか? – sanjihan

関連する問題