关闭jQuery对话框

时间:2014-12-19 12:30:35

标签: javascript php jquery html yii

出于某种原因,我将此代码显示为弹出窗口。

<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");
});

这很好用。虽然,我需要在单击我的span字段后隐藏/关闭对话框。我尝试过像$('#myDialog').dialog('close');这样的东西,但它不起作用。此外,尝试在第一次点击然后display: block时进入'myDialog'display: none,但无论如何,对话框仍保留在屏幕上。

这个'myDialog'实际上是从css接收一些样式,这就是为什么我正在编写这样的假对话。有什么建议吗?

4 个答案:

答案 0 :(得分: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 :(得分: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>

答案 2 :(得分: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

答案 3 :(得分: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' );
                        }
                    }
                }
            });
        });