【问题标题】:Why is jQuery UI dialog.('Close') firing too early?为什么 jQuery UI dialog.('Close') 过早触发?
【发布时间】:2009-06-08 15:12:29
【问题描述】:

我正在尝试在我的应用中创建弹出消息。成功后,我想打开一个对话框,为其设置动画......然后关闭它。我想一个更好的问题应该是,“你如何在 Jquery 中创建一个定时弹出窗口......但无论如何,当我运行我的代码时,我的对话框似乎只出现了一瞬间。如果我删除对话框('关闭' ) 一直到该点为止。jquery 是按顺序还是并行触发这些命令?

$.ajax({
   type: "POST",
   url: "/Sales",
   data: { customer: [id] },
   success: function(msg) {
      $('#thanks').dialog('open');
      $('#thanks').animate({ backgroundColor: '#aa0000', color: '#fff', width: 500 }, 2000); 
      $('#thanks').dialog('close');
   }
});

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

    以你所拥有的方式,它几乎可以同步工作。试试

     $('#thanks').dialog('open').animate({ backgroundColor: '#aa0000', color: '#fff', width: 500 }, 2000).dialog('close');
    

    【讨论】:

      【解决方案2】:

      您可能希望在 animate 函数的回调中关闭对话框:

      $.ajax({
         type: "POST",
         url: "/Sales",
         data: { customer: [id] },
         success: function(msg) {
            $('#thanks').dialog('open');
            $('#thanks').animate({ backgroundColor: '#aa0000', color: '#fff', width: 500 }, 2000, "linear", function(){ $('#thanks').dialog('close'); }); 
         }
      });
      

      但我认为你最好使用插件,例如jGrowl

      【讨论】:

        【解决方案3】:

        可能没有等待动画完成。尝试添加 2000 的等待,或链接关闭。

        【讨论】:

          【解决方案4】:

          .dialog('close') 调用不会等待您的动画。但是您真的想立即关闭对话框,还是不应该等待用户输入(即单击链接/按钮)来关闭它?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-05-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多