Làm cách nào để mở cửa sổ bật lên khi <a> thẻ onClick?


9

Trong Magento 2, tôi muốn hiển thị cửa sổ bật lên (có mã html bên trong) khi người dùng nhấp vào liên kết.


Tôi sẽ cho bạn câu trả lời trong vài phút.
Suresh Chikani

bạn có thể thử với mã của tôi không, bạn có thành công hay không, có vấn đề gì không.
Suresh Chikani

Câu trả lời:


37

Bạn có thể mở cửa sổ bật lên khi <a>thẻ onClick sử dụng mã bên dưới

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

Hãy cho tôi biết nếu bạn có bất kỳ vấn đề.


Nó hoạt động, cảm ơn bạn. Tuy nhiên, dòng chữ "Xin chào tôi ở đây" xuất hiện trên màn hình trong khi trang đang tải, sau đó biến mất. có cách sửa nào cho nó không?
Luis Garcia

Hãy để tôi kiểm tra từ phía tôi và cập nhật cho bạn.
Suresh Chikani

Hãy thử mã cập nhật của tôi. Cập nhật cho tôi làm việc hay không?
Suresh Chikani

Hae @SHPatel, tôi đã tạo biểu mẫu theo phương thức sử dụng mã ở trên, nhưng nút gửi không hoạt động trong khi gửi biểu mẫu, bạn có thể vui lòng giúp tôi không. Bạn có thể thêm tôi vào hộp trò chuyện để tôi có thể đăng mã của mình không.
Venu Chạy bộ

@VothyJoginpally, tôi cũng thêm biểu mẫu trong poup bạn có thể cho tôi biết cách gửi biểu mẫu
Jaisa

10

Hãy thử cách tiêu chuẩn Magento2:

Sao chép mã sau trong tập tin 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>

Tạo Nhà cung cấp / Mô-đun / chế độ xem / 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;
    }
);

Tôi không thể có được nó để làm việc. Tôi đang sử dụng liên kết để mở cửa sổ bật lên hướng dẫn kích thước trong các trang sản phẩm. Tuy nhiên, trong các trang sản phẩm nơi liên kết này được bật, cửa sổ bật lên không hoạt động (không có gì xảy ra khi nhấp vào liên kết) và hình ảnh sản phẩm không tải.
Luis Garcia

Bạn có thể hiển thị mã của bạn?
Sohel Rana

Tôi đã sử dụng chính xác mã bạn cung cấp nhưng 2 sửa đổi thay đổi "nhà cung cấp" và "mô-đun" với tên nhà cung cấp và mô-đun của tôi
Luis Garcia

Đó là mã làm việc. đảm bảo bạn chạy chế độ phát triển hoặc triển khai tranh chấp tĩnh bằng cách thực hiện theo lệnh 'php bin / magento setup: static-content: triển khai'
Sohel Rana

Tôi nghĩ rằng phần bạn đã bỏ lỡ trong câu trả lời là phần khai báo tệp requestjs-config.js. Mặc dù điều đó được ngụ ý, việc thêm tệp đó vào đã khiến giải pháp của bạn hoạt động hoàn hảo!.
circleix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.