2013-02-19 3 views
0

Я хочу активировать (загрузить) диалог jQuery только в том случае, если условие моего оператора if истинно. Что-то вроде этого:jQuery UI Dialog внутри цикла if else

if (/*condition is true*/) { 
    var dialog = '<div id="resultDialog" title="Search Results"><p>Results to your search. </p></div>'; 
    $('body').append(dialog); 
    $("#resultDialog").dialog({ 
    buttons: { 
     "No": function() { 
      $(this).dialog("close"); 
     }, 
     "Yes": function() { 
      //do something 
     } 
    } 
    }); 
    $("#resultDialog").dialog("open"); 
}else{ 
     //do something else 
    }; 

Диалог не зависит от события click/change. На данный момент, когда я отлаживаю, я вижу, что условие истинно, но все же диалог не появляется. Любое предложение/помощь будут оценены.

+0

'if' является оператором управления не петля. Также вы выбираете '# dialog', когда вы, вероятно, имеете в виду' # resultDialog'. –

+0

Ya, это была опечатка. – user988544

ответ

2

Начните свой код с $(document).ready(function(){ и закончить его с }); Кроме того, вы звоните .dialog() на #dialog вместо #resultDialog. Вам не нужно использовать вызов, чтобы открыть диалог, если вы не изменили значение по умолчанию autoOpen на false.

Ваш код, фиксированный и убрала:

$(document).ready(function(){ 
    if (/*condition is true*/) { 
    var dialog = '<div id="resultDialog" title="Search Results" style="display:none"><p>Results to your search.</p></div>'; 
    $('body').append(dialog); 
    $("#resultDialog").dialog({ 
     buttons: { 
     "No": function() { 
      $(this).dialog("close"); 
     }, 
     "Yes": function() { 
      //do something 
     } 
     } 
    }); 
}else{ 
    //do something else 
} 
});