0

我绝对不认为自己是 jQuery/javascript 专家,但我知道足够多的编程来应付 - 但在这个项目中,我遇到了一个问题,即 jQuery UI 无法初始化第二个对话框。在初始化它们之前,我有 2 个 if 语句要测试,但似乎只有第一个 if 语句正在启动。

$(文档).ready(函数(){  
  // 常规对话框
        $("#dialog").dialog({autoOpen: false, modal: true});
        $("#dialog_link").click(function(){
            $("#dialog").dialog("open");
            返回假;
        });

  // 确认框
  if($.cookie("modal_confirm").length > 0 && $.cookie("modal_confirm")!="") {
   $("body").prepend(''+$.cookie("modal_confirm")+'');
   var g = $("#confirm");
   g.html( g.html().replace(/\+/g," ") );
   $("#confirm").dialog({
     模态:真,
     堆栈:真,
     纽扣: {
      'OK': function() { window.location.replace($.cookie("confirmGo"))); (this).dialog('close'); },
      取消:function() { $(this).dialog('close'); }
     },
     关闭:function(){ $.cookie("modal_confirm",null); $.cookie("confirmGo",null);}
   });
  }

  // 警告框
  if($.cookie("alert").length > 0 && $.cookie("alert")!="") {
   $("body").prepend(''+$.cookie("alert")+'');
   var f = $("#alert");
   f.html( f.html().replace(/\+/g," ") );
   $("#alert").dialog({modal: true, stack: true, 按钮: {'OK': function() {$(this).dialog('close');}}, close: function() { $.cookie("alert",null); }});
  }
    });

在这种情况下,当确认打开时,警报模式不会打开。如果我将它移到确认前面,则警报会打开,但确认不会打开。这是一个 jQuery UI 问题吗?如果是这样,是否有解决方法?

请提前帮助和感谢。

4

1 回答 1

1

您在第 18 行有一个额外的括号,后来在同一行忘记了 (this) 前面的 $。它应该是:

'OK': function() { window.location.replace($.cookie("confirmGo")); $(this).dialog('close'); },

使用jslint来定位这些错误。

于 2010-04-29T21:07:17.840 回答