I have a function that is bound to the action of hiding a modal dialog.
I'm using code similar to the accepted answer to this question.
$('#myModal').on('hidden', function () { // do something… })
However, this dialog may get reopened for editing, and, when that happens, I don't necessarily want to run this code. Is there a way to "unbind" the function so that it is no longer run when the dialog closes? I haven't found anything in the documentation.
When the Button is clicked, the HTML DIV is referenced using jQuery and its modal function is called along with properties data-backdrop: "static" and data-keyboard: false which disables the closing of the Bootstrap Modal Popup when clicked outside.
You can prevent closing of modal dialog by setting the beforeClose event argument cancel value to true.
Data-keyword="false" is to prevent closing modal while clicking Esc button, while data-backdrop="static" , allows you keep modal pop-up opened when clicking on Gray area.
Clicking on the modal “backdrop” will automatically close the modal. Bootstrap only supports one modal window at a time.
You can do something like to unbind all events tied to the modal element:
Unbind all events in the modal:
/* First option */ $('#myModal').on('hidden', function (e) { $(e.currentTarget).unbind(); // or $(this) }); /* Second option is to call it directly when needed */ $('#myModal').unbind();
The Bootrap modal also have specific events tied to it, so you can also specify which event(s) you want to unbind.
/* Events are 'hidden', 'hide', 'show', 'shown' */ $('#myModal').unbind(/* specific event here */);
If you wish to remove events tied to the content of the modal, you can simply just empty the elements within $('#myModal').empty()
and unbind those elements appropriately.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With