<a>标记onClick时如何打开弹出窗口?


Answers:


38

您可以使用以下代码在<a>标记onClick时打开弹出窗口

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

如果您有任何问题,请告诉我。


可以,谢谢。但是,在页面加载时,屏幕上会出现文本“嗨,我在这里”,然后消失。有解决办法吗?
路易斯·加西亚

让我从我身边检查并向您更新。
Suresh Chikani

试试我的更新代码。是否更新我的工作?
Suresh Chikani '16

Hae @SHPatel,我已经使用上述代码在模式中创建了表单,但是在提交表单时,提交按钮不起作用,请您帮我。您能将我添加到聊天框中,以便我发布我的代码吗?
Venu Joginpally

@VenuJoginpally,我也在poup中添加了表格,您能告诉我如何提交表格
吗?-Jaisa

11

尝试使用Magento2标准方法:

将以下代码复制到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>

创建供应商/模块/视图/前端/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

我完全使用了您提供的代码,但进行了2次修改,分别用我的供应商和模块名称更改了“供应商”和“模块”
Luis Garcia

它是工作代码。确保通过以下命令'php bin / magento setup:static-content:deploy'运行开发模式或部署static cont
Sohel Rana

我认为您在答案中遗漏的部分是requirejs-config.js文件声明。即使暗含暗示,添加该文件也可以使您的解决方案完美!
circleix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.