2014-12-19 169 views
0

出于某种原因,我将此代码显示为一个弹出窗口。关闭jQuery对话框

<div id="myDialog" title="myTitle"> 
    <div class="table_cell"> 
    <div class="message"></div> 
    </div> 
    <div class="table_cell" onclick="doMyThing(<?php echo $id; ?>)"> 
    <span style="cursor:pointer">Accept</span> 
    </div> 
</div> 

当我火用javascript一些事件,接下来的代码被执行:

$(document).ready(function() { 
    $('#myDialog').dialog(); 
    $('.message').html("Some text"); 
}); 

这工作得很好。虽然,我需要点击我的跨度字段后隐藏/关闭对话框。我试过类似$('#myDialog').dialog('close');但它不起作用。此外,尝试在'myDialog'display: block时首次点击,然后display: none,但对话框始终保持在屏幕上。

这'myDialog'实际上是从CSS接收一些样式,这就是为什么我编码这样的假对话。有什么建议么?

+0

你是如何绑定点击以触发关闭事件的? – atmd

+0

尝试将'display:none'应用于其父项 –

回答

0

嗯,我终于用了jQuery按钮和改变了模样。我试图在那里使用一个CSS类,但它没有解决。

$(document).ready(function() { 
      $('.message').html("Some text"); 
      $('#myDialog').dialog({ 
       modal: true, 
       buttons: { 
        'accept': { 
         style:'background:#D1040E; color: #DADADA', 
         text: 'Accept', 
         click: function() { 
          doMyThing(<?php echo $id; ?>); 
          $(this).dialog('close'); 
         } 
        }, 
        'cancel': { 
         style:'background:#D1040E; color: #DADADA', 
         text: 'Cancel', 
         click: function() { 
          $(this).dialog('close'); 
         } 
        } 
       } 
      }); 
     }); 
0

.dialog('close')应该可以正常工作。正确引用跨度。

<div id="myDialog" title="myTitle"> 
    <div class="table_cell"> 
    <div class="message"></div> 
    </div> 
    <div class="table_cell" onclick="doMyThing(<?php echo $id; ?>)"> 
    <span id='accept' style="cursor:pointer">Accept</span> 
    </div> 
</div> 

$(document).ready(function() { 
    $('#myDialog').dialog(); 
    $('.message').html("Some text"); 
    $('#accept').on('click', function(){ 
     $('#myDialog').dialog('close'); 
    }) 
}); 

FIDDLE HERE

1

你可以使用所提供的按钮,而不是让自己的

的jQuery:

$(document).ready(function() { 
    $("#mydialog").dialog({ 
     modal: true, 
     buttons: { 
     "Accept": function() { 
       doMyThing(<?= $id ?>); 
       $(this).dialog("close"); 
      } 
     } 
    }) 
}); 

HTML:

<div id="myDialog" title="myTitle"> 
<div class="table_cell"> 
    <div class="message"></div> 
</div> 
</div> 

你可以在这里查看适当的文件:http://jqueryui.com/dialog/#modal-confirmation

1

检查Link Here

<div id="dialog-confirm" title="Empty the recycle bin?"> 
    <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>These items will be permanently deleted and cannot be recovered. Are you sure?</p> 
</div> 

<script> 
    $(function() { 
    $("#dialog-confirm").dialog({ 
     resizable: false, 
     height:140, 
     modal: true, 
     buttons: { 
     "Delete all items": function() { 
      $(this).dialog("close"); 
     }, 
     Cancel: function() { 
      $(this).dialog("close"); 
     } 
     } 
    }); 
    }); 
    </script>