2010-04-29 2 views
0

Я определенно не считаю себя экспертом jQuery/javascript, но знаю, что достаточно программирования, чтобы пройти, но в этом проекте я столкнулся с проблемой, когда пользовательский интерфейс jQuery не инициализировал 2-й диалог. У меня есть 2, если заявления, чтобы проверить перед инициализацией каждого из них, но только первого, если утверждение, кажется, ноги в.Проблема jQuery UI с несколькими операторами 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? Если да, есть ли обходной путь?

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

+0

Основываясь на этом ответе от @dxprog, вы действительно должны запускать весь свой JavaScript через JSLint (http://www.jslint.com/) – PatrikAkerstrand

ответ

1

У вас была дополнительная скобка на строке 18 и забыли $ перед этим в той же строке. Должно быть:

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

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

+0

О, извините, вот где у меня был decodeURIComponent open, а в исходном коде я имеют правильное число круглых скобок, так что это не проблема ... любые другие идеи? – ysquared86

Смежные вопросы