Reputation: 503
I have a modal dialog and I'm trying to use javvascript's onClick
function to close it, but it says 'closeModal not defined'.
Here is my html for the modal:
<div id="popup" class="modal-box">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Registration</h4>
</div>
<div class="modal-body">
<p>Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" onclick="closeModal()">Close</button>
</div>
</div>
and here is my javascript:
<script type="text/javascript">
$(function closeModal() {
$('#popup').modal('hide');
});
</script>
I fail to understand why it says undefined because the function and onClick
have the same name(closeModal
) and i referenced #popup
in my function to close the whole modal.
Upvotes: 0
Views: 683
Reputation: 77482
closeModal
should be in global scope, $(function (){})
is shorthand for $(document).ready(function() {})
function closeModal() {
console.log(this);
// $('#popup').modal('hide');
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="popup" class="modal-box">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Registration</h4>
</div>
<div class="modal-body">
<p>Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" onclick="closeModal()">Close</button>
</div>
</div>
Also if you use jQuery you don't need use inline events you can change your example like this
$(function () {
$('.js-close-modal').on('click', function () {
console.log(this);
// your code
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="popup" class="modal-box">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Registration</h4>
</div>
<div class="modal-body">
<p>Modal Body</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default js-close-modal" data-dismiss="modal">Close</button>
</div>
</div>
Upvotes: 1