Dans Magento 2, je souhaite afficher une fenêtre contextuelle (avec du code HTML à l'intérieur) lorsqu'un utilisateur clique sur un lien.
Dans Magento 2, je souhaite afficher une fenêtre contextuelle (avec du code HTML à l'intérieur) lorsqu'un utilisateur clique sur un lien.
Réponses:
Vous pouvez ouvrir une fenêtre contextuelle lorsque la <a>
balise onClick utilise le code ci-dessous
<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>
Faites-moi savoir si vous avez un problème.
Essayez la méthode standard de Magento2:
Copiez le code suivant dans le fichier 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>
Créer un fournisseur / module / vue / 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;
}
);