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.

Luis Garcia
sumber
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.

Suresh Chikani
sumber
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;
    }
);
Sohel Rana
sumber
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