【问题标题】:How to execute an javaScript after jquery.ui dialog button function returns.?jquery.ui对话框按钮功能返回后如何执行javaScript。?
【发布时间】:2013-01-19 04:13:36
【问题描述】:

我试图避开javascript的确认框并尝试了jquery.ui对话框。

当确认框返回真或假之后,只有剩余的 javascipt 将执行,但在这个 jquery.ui 对话框中没有发生。

这是我试过的,

我有一些链接

 function checkit(){
   var istrue = showdial("confirm");
   if(istrue== true) alert("yes");
   else  alert("no");
}
function showdial(tStr)
{
     $('<div></div>').appendTo('body')
                    .html('<div><h4>Are you sure..?</h4></div>')
                    .dialog({
                        title: tStr, 
                        zIndex: 10000,
                        autoOpen: true,
                        modal: true,
                        buttons:{
                             Yes: function(){

                                $(this).dialog("close");

                                return true;
                             }
                             No: function(){
                                $(this).dialog("close");
                                return false;
                              }
                        }

               }); 

  }

如果我在上面做错了什么,请纠正我。

在单击是或否按钮之前,它始终只提示“否”,.在该对话框返回值后,我如何运行脚本。而且我不希望使用该 setTimeout() 函数。

【问题讨论】:

  • 你为什么不把你的 checkIt() 逻辑拆分为Yes: function(){...} and No: function(){...} 分配给你的对话框中需要的东西
  • 我也试过了,但是如果我从 checkit() 将一些参数传递给 yes 函数逻辑,它就不起作用了。

标签: javascript jquery-ui


【解决方案1】:

异步代码不能返回这样的值。查看this related question,它解释了如何使用回调解决此问题。

【讨论】:

  • 感谢您的回复。可以详细解释一下吗?
猜你喜欢
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多