我有问题,当创建自定义的JQuery插件,将显示引导模式对话框。自定义插件需要回调函数作为其参数。
问题是当模态对话框调用两次,回调也调用两次,等等。
在这里,代码:
<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');
});
});演示:http://jsfiddle.net/kJn47/2/
发布于 2016-08-24 22:11:41
您可以针对on()调用one():
$('#general_modal .action_button').unbind().one('click', function () {根据文件:
.one()方法与.on()相同,只是给定元素和事件类型的处理程序在第一次调用后是不绑定的。例如:
http://jsfiddle.net/kJn47/47/
https://stackoverflow.com/questions/19969896
复制相似问题