de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
David Bonnici
David Bonnici
Question

Kotak Dialog jQuery

Saya mencoba membuat kotak dialog dengan jquery. Dalam kotak dialog ini saya akan memiliki syarat dan ketentuan. Masalahnya adalah kotak dialog hanya ditampilkan untuk PERTAMA KALI.

Ini adalah kodenya.

JavaScript:

function showTOC()
{
    $("#TOC").dialog({ 
        modal: true, 
        overlay: { 
            opacity: 0.7, 
            background: "black" 
        } 
    })
}

HTML (a href):

<a class="TOClink" href="javascript:showTOC();">View Terms & Conditions</a>

<div id="example" title="Terms & Conditions">1..2..</div>

Masalahnya menurut saya adalah ketika Anda menutup kotak dialog, DIV dihancurkan dari kode html sehingga tidak pernah dapat ditampilkan lagi di layar.

Bisakah Anda membantu!

Terima kasih

35 2008-12-14T16:34:13+00:00 3
Chris Porter
Chris Porter
Pertanyaan edit 21 Februari 2011 в 5:50
Pemrograman
javascript
jquery
dialog
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
 RaeLehman
RaeLehman
6 Januari 2009 в 3:12
2009-01-06T15:12:27+00:00
Lebih
Sumber
Sunting
#8691054

Saya mengalami masalah yang sama (dialog hanya akan terbuka sekali, setelah ditutup, dialog tidak akan terbuka lagi), dan mencoba solusi di atas yang tidak memperbaiki masalah saya. Saya kembali ke dokumen dan menyadari bahwa saya memiliki kesalahpahaman mendasar tentang cara kerja dialog.

Perintah $('#myDiv').dialog() menciptakan/membuat dialog, tetapi bukan cara yang tepat untuk membuka dialog tersebut. Cara yang tepat untuk membukanya adalah dengan menginstansiasi dialog dengan dialog(), kemudian gunakan dialog('open') untuk menampilkannya, dan dialog('close') untuk menutup/menyembunyikannya. Ini berarti anda mungkin ingin mengatur opsi autoOpen ke false.

Jadi prosesnya adalah: instantiate dialog pada dokumen yang siap, lalu dengarkan klik atau tindakan apa pun yang Anda inginkan untuk menampilkan dialog. Maka itu akan bekerja, dari waktu ke waktu!

<script type="text/javascript"> 
        jQuery(document).ready( function(){       
            jQuery("#myButton").click( showDialog );

            //variable to reference window
            $myWindow = jQuery('#myDiv');

            //instantiate the dialog
            $myWindow.dialog({ height: 350,
                width: 400,
                modal: true,
                position: 'center',
                autoOpen:false,
                title:'Hello World',
                overlay: { opacity: 0.5, background: 'black'}
                });
            }

        );
    //function to show dialog   
    var showDialog = function() {
        //if the contents have been hidden with css, you need this
        $myWindow.show(); 
        //open the dialog
        $myWindow.dialog("open");
        }

    //function to close dialog, probably called by a button in the dialog
    var closeDialog = function() {
        $myWindow.dialog("close");
    }

</script>
</head>

<body>

<input id="myButton" name="myButton" value="Click Me" type="button" />
<div id="myDiv" style="display:none">
    <p>I am a modal dialog</p>
</div>
64
0
Solution / Answer
 carlsz
carlsz
14 Desember 2008 в 4:58
2008-12-14T16:58:30+00:00
Lebih
Sumber
Sunting
#8691053

Sepertinya ada masalah dengan kode yang Anda posting. Fungsi Anda untuk menampilkan T&C mereferensikan id div yang salah. Anda harus mempertimbangkan untuk menetapkan fungsi showTOC ke atribut onclick setelah dokumen dimuat juga:

$(document).ready({
    $('a.TOClink').click(function(){
        showTOC();
    });
});

function showTOC() {
    $('#example').dialog({modal:true});
}

Contoh yang lebih ringkas yang mencapai efek yang diinginkan menggunakan dialog jQuery UI adalah:

   <div id="terms" style="display:none;">
       Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
   </div>
   <a id="showTerms" href="#">Show Terms & Conditions</a>      
   <script type="text/javascript">
       $(document).ready(function(){
           $('#showTerms').click(function(){
               $('#terms').dialog({modal:true});   
           });
       });
   </script>
 carlsz
carlsz
Jawaban edit 14 Desember 2008 в 5:29
25
0
 Rickster
Rickster
27 Mei 2009 в 8:20
2009-05-27T08:20:23+00:00
Lebih
Sumber
Sunting
#8691055

Saya memiliki masalah yang sama dan sedang mencari cara untuk menyelesaikannya yang membawa saya ke sini. Setelah meninjau saran yang dibuat dari RaeLehman, hal itu membawa saya ke solusi. Inilah implementasi saya.

Dalam acara $ (dokumen).ready saya, saya menginisialisasi dialog saya dengan autoOpen disetel ke false. Saya juga memilih untuk mengikat event klik ke elemen, seperti tombol, yang akan membuka dialog saya.

$(document).ready(function(){

    // Initialize my dialog
    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        buttons: {
        "OK":function() { // do something },
        "Cancel": function() { $(this).dialog("close"); }
    }
    });

    // Bind to the click event for my button and execute my function
    $("#x-button").click(function(){
        Foo.DoSomething();
    });
});

Selanjutnya, saya memastikan bahwa fungsi tersebut didefinisikan dan di situlah saya menerapkan metode buka dialog.

var Foo = {
    DoSomething: function(){
        $("#dialog").dialog("open");
    }
}

Ngomong-ngomong, saya menguji ini di IE7 dan Firefox dan berfungsi dengan baik. Semoga ini membantu!

 Niyaz
Niyaz
Jawaban edit 15 Agustus 2009 в 1:58
14
0
Related communities 2
JavaScript Indonesia
JavaScript Indonesia
14 549 pengguna
Grup JavaScript yang membahas JavaScript, framework JS, dan Node JS secara universal. Cek Pinned Message untuk keterangan lebih lanjut. Komunitas ReactJS: https://t.me/react_idn
Buka telegram
jQuery Indonesia
jQuery Indonesia
343 pengguna
Learning jQuery & Solve Problem
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
UbiBot UK
Terdaftar 15 jam yang lalu
2
Галина Утяшова
Terdaftar 1 hari yang lalu
3
Asilbek Qadamboyev
Terdaftar 4 hari yang lalu
4
Akshit Mehta
Terdaftar 1 minggu yang lalu
5
me you
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi