JQuery UI проблема с несколькими операторами IF - PullRequest
0 голосов
/ 30 апреля 2010

Я определенно не считаю себя экспертом по jQuery / javascript, но я знаю достаточно программирования, чтобы справиться - но в этом проекте я столкнулся с проблемой, когда jQuery UI не может инициализировать 2-й диалог. У меня есть 2 оператора if для проверки перед инициализацией каждого из них, но только 1-й оператор if, кажется, начинает работать.

 $(document).ready(function(){  
  // regular dialog box
        $("#dialog").dialog({autoOpen: false, modal: true});
        $("#dialog_link").click(function(){
            $("#dialog").dialog("open");
            return false;
        });

  // confirm box
  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({ 
     modal: true,
     stack: true,
     buttons: {
      'OK': function() { window.location.replace($.cookie("confirmGo"))); (this).dialog('close'); },
      Cancel: function() { $(this).dialog('close'); }
     },
     close: function(){ $.cookie("modal_confirm",null); $.cookie("confirmGo",null);}
   }); 
  }

  // alert box
  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, buttons: {'OK': function() {$(this).dialog('close');}}, close: function(){ $.cookie("alert",null); }});
  } 
    });

В этом случае модальное оповещение не будет открываться при открытии подтверждения. Если я переместлю его перед подтверждением, то предупреждение откроется, но подтверждение не откроется. Это проблема jQuery UI? Если так, есть ли обходной путь?

Пожалуйста, помогите и спасибо заранее.

1 Ответ

1 голос
/ 30 апреля 2010

У вас были лишние скобки в строке 18, и вы забыли $ перед (this) позже в той же строке. Следует читать:

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

Используется jslint для поиска этих ошибок.

...