In Magento 2, voglio visualizzare un popup (con codice html all'interno) quando un utente fa clic su un collegamento.
In Magento 2, voglio visualizzare un popup (con codice html all'interno) quando un utente fa clic su un collegamento.
Risposte:
È 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.
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;
}
);