Come aprire popup quando <a> tag onClick?


10

In Magento 2, voglio visualizzare un popup (con codice html all'interno) quando un utente fa clic su un collegamento.


Ti darò una risposta in pochi minuti.
Suresh Chikani,

puoi provare con il mio codice, hai successo o no, avere qualche problema.
Suresh Chikani,

Risposte:


38

È possibile aprire popup quando <a>tag onclick usando sotto il codice

<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>

Fammi sapere se hai qualche problema.


Funziona, grazie. Tuttavia, il testo "Ciao sono qui" appare sullo schermo durante il caricamento della pagina, quindi scompare. C'è una correzione per questo?
Luis Garcia,

fammi controllare dalla mia parte e aggiornarti.
Suresh Chikani,

Prova il mio codice di aggiornamento. mi aggiorni lavorando o no?
Suresh Chikani,

Hae @SHPatel, ho creato il modulo in modale utilizzando il codice sopra, ma il pulsante di invio non funziona durante l'invio del modulo, potresti aiutarmi, per favore. Potresti aggiungermi alla finestra di chat, in modo che io possa pubblicare il mio codice.
Venu Joginpally,

@VenuJoginpally, aggiungo anche il modulo in poup puoi dirmi come inviare il modulo
Jaisa

11

Prova il modo standard Magento2:

Copia il seguente codice all'interno del 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>

Crea fornitore / modulo / 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;
    }
);

Non riesco a farlo funzionare. Sto usando il link per aprire un popup della guida alle taglie nelle pagine dei prodotti. Tuttavia, nelle pagine dei prodotti in cui è abilitato questo collegamento, il popup non funziona (non succede nulla quando si fa clic sul collegamento) e le immagini dei prodotti non vengono caricate.
Luis Garcia,

Puoi mostrare il tuo codice?
Sohel Rana,

Ho usato esattamente il codice che hai fornito ma 2 modifiche cambiando "fornitore" e "modulo" con i nomi dei miei fornitori e moduli
Luis Garcia

È un codice funzionante. assicurati di eseguire la modalità di sviluppo o distribuire contend statico seguendo il comando 'php bin / magento setup: static-content: deploy'
Sohel Rana

Penso che la parte che hai perso nella risposta sia stata la dichiarazione del file requirejs-config.js. Anche se questo è implicito, l'aggiunta di quel file ha reso la tua soluzione perfetta !.
cerchi il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.