Callback-Funktion zweimal aufgerufen und mehr auf Bootstrap Modal
Ich habe ein problem beim erstellen von benutzerdefinierten JQuery-plugin, zeigen Bootstrap-modal-dialog. Die benutzerdefinierte Plug-in erfordern callback-Funktion wie die parameter.
Problem werden, als modales Dialogfenster aufgerufen, zweimal, callback auch aufgerufen, zweimal, und so weiter.
Hier der code:
HTML
<a href="#" class="confirm_delete">test modal</a>
<div class="modal fade" id="general_modal" tabindex="-1" role="dialog" aria-labelledby="general_modalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="general_modal_title">Set Title Here</h4>
</div>
<div class="modal-body">set modal content here</div>
<div class="modal-footer">
<button type="button" class="btn btn-default close_button" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary action_button">Save changes</button>
</div>
</div>
</div>
Javascript
(function ($) {
$.fn.showDialog = function (options, callback) {
$('#general_modal').modal();
$('#general_modal .action_button').on('click', function () {
callback();
});
}
}(jQuery));
$('.confirm_delete').click(function (e) {
e.preventDefault();
$(this).showDialog(null, function () {
alert('xxx');
});
});
DEMO: http://jsfiddle.net/kJn47/2/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie rebinding den modal und klicken Sie auf Ereignisse jeder Zeit
showDialog
ausgeführt wird. Hier ist, wie Sie vielleicht verhindern, dass die Ereignisse, die re-attached jedes mal:Können Sie rufen Sie eine() gegen():
Gemäß der Dokumentation:
http://jsfiddle.net/kJn47/47/