How to open popup when <a> tag onClick?
You can open popup when <a>
tag onClick using below code
<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>
Let me know if you have any issue.
Try Magento2 standard way:
Copy following code inside phtml file.
<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>
Create Vendor/Module/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;
}
);