[Javascript] jQuery UI Dialog Box - لا يفتح بعد أن يكون مغلقًا


Answers

مرحبا يا شباب تمكنت من حلها.

اعتدت تدمير وظيفة إغلاق بدلاً من ذلك (لا يجعل أي معنى) ولكنه يعمل!

$(document).ready(function() {
$('#showTerms').click(function()
{
    $('#terms').css('display','inline');
    $('#terms').dialog({resizable: false,
        modal: true,
        width: 400,
        height: 450,
        overlay: { backgroundColor: "#000", opacity: 0.5 },
        buttons:{ "Close": function() { $(this).dialog('**destroy**'); } },
        close: function(ev, ui) { $(this).close(); },
    });         
});   
$('#form1 input#calendarTEST').datepicker({ dateFormat: 'MM d, yy' });
});
Question

لدي مشكلة في jquery-ui dialog box .

المشكلة هي أنه عند إغلاق مربع الحوار ثم النقر فوق الارتباط الذي يقوم بتشغيله ، فإنه لا ينبثق مرة أخرى إلا إذا قمت بتحديث الصفحة.

كيف يمكنني استدعاء مربع الحوار مرة أخرى دون تحديث الصفحة الفعلية.

فيما يلي الكود:

$(document).ready(function() {
    $('#showTerms').click(function()
    {
        $('#terms').css('display','inline');
        $('#terms').dialog({
            resizable: false,
            modal: true,
            width: 400,
            height: 450,
            overlay: { backgroundColor: "#000", opacity: 0.5 },
            buttons:{ "Close": function() { $(this).dialog("close"); } },
            close: function(ev, ui) { $(this).remove(); },
    }); 
});

شكر




أعتقد أنه يمكنك فقط تهيئة الحوار مرة واحدة. يحاول المثال أعلاه تهيئة مربع الحوار في كل مرة يتم فيها النقر فوق #terms. هذا سوف يسبب مشاكل. بدلاً من ذلك ، يجب أن تحدث التهيئة خارج حدث النقرة. من المفترض أن يبدو مثالك على هذا النحو:

$(document).ready(function() {
    // dialog init
    $('#terms').dialog({
        autoOpen: false,
        resizable: false,
        modal: true,
        width: 400,
        height: 450,
        overlay: { backgroundColor: "#000", opacity: 0.5 },
        buttons: { "Close": function() { $(this).dialog('close'); } },
        close: function(ev, ui) { $(this).close(); }
    });
    // click event
    $('#showTerms').click(function(){
        $('#terms').dialog('open').css('display','inline');      
    });
    // date picker
    $('#form1 input#calendarTEST').datepicker({ dateFormat: 'MM d, yy' });
});

أفكر في أنه بمجرد توضيح ذلك ، يجب عليه إصلاح المشكلة "فتح من الرابط" التي وصفتها.




$(this).dialog('destroy');

يعمل!







أستخدم مربع الحوار كمستعرض ملف وتحميل ثم أعيد كتابة الكود مثل هذا

var dialog1 = $("#dialog").dialog({ 
              autoOpen: false, 
              height: 480, 
              width: 640 
}); 
$('#tikla').click(function() {  
    dialog1.load('./browser.php').dialog('open');
});   

يبدو أن كل شيء يعمل بشكل رائع.




 <button onClick="abrirOpen()">Open Dialog</button>

<script type="text/javascript">
var $dialogo = $("<div></div>").html("Aqui tu contenido(here your content)").dialog({
       title: "Dialogo de UI",
       autoOpen: false,
       close: function(ev, ui){
               $(this).dialog("destroy");
       }
 function abrirOpen(){
       $dialogo.dialog("open");
 }
});

//**Esto funciona para mi... (this works for me)**
</script>