Bagaimana cara membuka munculan ketika <a> memberi tag pada Klik?


10

Di Magento 2, saya ingin menampilkan sembulan (dengan kode html di dalamnya) ketika pengguna mengklik tautan.


Saya akan memberi Anda jawaban dalam beberapa menit.
Suresh Chikani

dapatkah Anda mencoba dengan kode saya, Anda berhasil atau tidak, memiliki masalah.
Suresh Chikani

Jawaban:


38

Anda dapat membuka popup ketika <a>menandai onClick menggunakan kode di bawah ini

<div>
    <a href="#" id="click-me">Click Me</a>
</div>

<div id="popup-modal" style="display:none;">
    <h1> Hi I'm here.... </h1>
</div>

<script>
    require(
        [
            'jquery',
            'Magento_Ui/js/modal/modal'
        ],
        function(
            $,
            modal
        ) {
            var options = {
                type: 'popup',
                responsive: true,
                innerScroll: true,
                title: 'popup modal title',
                buttons: [{
                    text: $.mage.__('Continue'),
                    class: '',
                    click: function () {
                        this.closeModal();
                    }
                }]
            };

            var popup = modal(options, $('#popup-modal'));
            $("#click-me").on('click',function(){ 
                $("#popup-modal").modal("openModal");
            });

        }
    );
</script>

Beri tahu saya jika Anda memiliki masalah.


Berhasil, terima kasih. Namun teks "Hai aku di sini" muncul di layar saat halaman sedang memuat, lalu menghilang. Apakah ada perbaikan untuk ini?
Luis Garcia

biarkan saya memeriksa dari sisi saya dan memperbarui kepada Anda.
Suresh Chikani

Coba kode pembaruan saya. perbarui untuk saya bekerja atau tidak?
Suresh Chikani

Hae @SHPatel, saya telah membuat formulir dalam modal menggunakan kode di atas, tetapi tombol kirim tidak berfungsi saat mengirimkan formulir, bisakah Anda membantu saya. Bisakah Anda menambahkan saya ke kotak obrolan, sehingga saya dapat memposting kode saya.
Venu Joginpally

@VenuJoginpally, saya juga menambahkan formulir di poup bisa Anda ceritakan bagaimana cara mengirimkan formulir
Jaisa

11

Coba cara standar Magento2:

Salin kode berikut di dalam file phtml .

<div id="modal-form">
    <h1>Hey</h1>
</div>
<a class="action open-modal-form"
   href="#"
   title="Modal">
    <span>Click Me!</span>
</a>
<script type="text/x-magento-init">
    {
        ".open-modal-form": {
            "Vendor_Module/js/modal-form": {}
        }
    }
</script>

Buat Vendor / Module / view / frontend / web / js / modal-form.js

define(
    [
        'jquery',
        'Magento_Ui/js/modal/modal'
    ],
    function($) {
        "use strict";
        //creating jquery widget
        $.widget('Vendor.modalForm', {
            options: {
                modalForm: '#modal-form',
                modalButton: '.open-modal-form'
            },
            _create: function() {
                this.options.modalOption = this._getModalOptions();
                this._bind();
            },
            _getModalOptions: function() {
                /**
                 * Modal options
                 */
                var options = {
                    type: 'popup',
                    responsive: true,
                    title: 'Sample Title',
                    buttons: [{
                        text: $.mage.__('Continue'),
                        class: '',
                        click: function () {
                            this.closeModal();
                        }
                    }]
                };

                return options;
            },
            _bind: function(){
                var modalOption = this.options.modalOption;
                var modalForm = this.options.modalForm;

                $(document).on('click', this.options.modalButton,  function(){
                    //Initialize modal
                    $(modalForm).modal(modalOption);
                    //open modal
                    $(modalForm).trigger('openModal');
                });
            }
        });

        return $.Vendor.modalForm;
    }
);

Saya tidak bisa membuatnya bekerja. Saya menggunakan tautan untuk membuka popup panduan ukuran di halaman produk. Namun, di halaman produk di mana tautan ini diaktifkan, popup tidak berfungsi (tidak ada yang terjadi ketika tautan diklik), dan gambar produk tidak dimuat.
Luis Garcia

Bisakah Anda menunjukkan kode Anda?
Sohel Rana

Saya menggunakan persis kode yang Anda berikan tetapi 2 modifikasi mengubah "vendor" dan "module" dengan nama vendor dan modul saya
Luis Garcia

Ini kode yang berfungsi. pastikan Anda menjalankan mode pengembangan atau menggunakan static contend dengan mengikuti perintah 'php bin / magento setup: static-content: deploy'
Sohel Rana

Saya pikir bagian yang Anda lewatkan dalam jawaban adalah deklarasi file requireejs-config.js. Meskipun itu tersirat, menambahkan file itu dalam membuat solusi Anda berfungsi sempurna !.
circleix
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.