【问题标题】:Jquery dialog not opening second timeJquery对话框没有第二次打开
【发布时间】:2013-06-11 08:31:36
【问题描述】:

在将此问题视为已回答的问题之前,请先查看一下。我已经实现了其他帖子中提供的几乎所有解决方案,但没有运气。模态第一次完美打开,但第二次失败。

从这里调用模态:

function myFx(id){
  $.ajax(
    {
      type: "POST",
      url: "/mypath",
      data: { ZoneId: id },
      dataType: "json",
      success: function (data) {
        $('#dialog-form').dialog('open');
      }
    },
    error: function (response) {
    }
  });
 }

函数在 $(document).ready() 中。萤火虫没有错误。在单击按钮时,我调用 myFx() 并传递 id:<button onclick="myFx(id)" />

并且是这样初始化的:

var myModal =  $('#dialog-form').dialog(
  {
    autoOpen: false,
    modal: true,
    height: 290,
    width: 475,
    buttons: {
      'Save': function () {
        $.ajax({
          type: "POST",
          url: $("#edit-book").attr('action'),
          data: $("#edit-book").serialize()+'&eZoneId=' +$('#eZoneId').val(),
          dataType: "text/plain",
          success: function (response) {
            var closeDialog = $('#dialog-form').dialog('close');
            $("#grid").load('mypath/ #grid', function () {
            $('tbody > tr:first')
              .effect("highlight", {}, 2000);
        });
      },
      error: function (response) {
        alert(response);
        $('#dialog-form').dialog('close');
      }
    });
  },
  Cancel: function () {
    $('#dialog-form').dialog('close');
  }
});

请帮忙。

【问题讨论】:

  • 请更具体一点 - 您的代码在哪里执行?
  • 很难理解“第二次失败”是什么意思。也许是 POST 失败了。创建一个 JS Fiddle 来演示问题。
  • @Omar,拜托,如果不是 3 或 4,至少要缩进 2 个字符。1 个字符缩进对我疲惫的眼睛来说太难了。
  • @OldPro 哦,对不起!会修复它。我不想让你感到疲倦;)
  • 请确定,如果您的代码被执行 - 它应该在文档准备好后执行:使用 $(function(){ /* 你的代码 */ });第二个提示:如果你修改了对话框(#dialog-form),你必须再次设置对话框初始化器

标签: jquery jquery-ui jquery-dialog


【解决方案1】:

您需要在 ajax 调用之前添加以下行。

$('#dialog-form').dialog('open');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    相关资源
    最近更新 更多