我有一个引导程序模式窗体,其中包含要跟踪的项目列表。如果选中,有一个全选框,可以选择/取消选择列表中的所有项目。每当我显示不了解的模式时,都会调用一次jquery函数。 第一次打开模式时,将调用jquery函数。 第二次打开模式,jquery函数被调用两次。 第三次打开模态,jquery函数被调用三次。 等等。 为什么每次打开模态时都会一次调用此复选框功能? jQuery是否会将内容推送到某处的某种类型的堆栈上? 我想做的是,如果用户选择了所有要检查的项目,则会弹出一个警报。但是我不希望他/她收到多个警报。下面的代码:
$('#realTimeModal').on('show.bs.modal', function (e) {
var modal = $(this)
console.log('controller-1253: realTimeModal handler');
//first, clear out any previous layers
clearLayers();
console.log('show_realtime, updatePositions: ', updatePositions );
clearInterval(updatePositions);
/*
* Check to see if the 'Toggle All' checkbox is checked. If so
* either select all checkboxes or deselect them.
*/
$("#check_rt").change(function () {
console.log('==================================');
console.log('===== in #check_rt =========');
console.log('==================================');
var checked = $(this).prop('checked');
if (checked == true) {
$.each($("input[class='form-check-input callSign_checkbox-rt']"), function () {
$(this).prop('checked', true);
});
trackAll = 'true';
}
else {
$.each($("input[class='form-check-input callSign_checkbox-rt']"), function () {
$(this).prop('checked', false);
});
trackAll = 'false';
}
//if ( trackAll == 'true' )
//alert('If you select all aircraft, breadcrumbs will not be displayed.');
});
}) // $('#realTimeModal').on('show.....)
我想做的只是在用户选中“全选”复选框时弹出警报。但是我只希望一个警报,而不是打开模态时的警报数目。我在这里缺少jQuery基本的东西吗?
谢谢.....
答案 0 :(得分:0)
每次打开模式时,您都将添加一个事件处理程序。
函数-
$("#check_rt").change(function () { ... }
是在-
中定义的$('#realTimeModal').on('show.bs.modal', function (e) { ... }
情况并非如此。您应该在模式显示函数调用之外调用$("#check_rt").change()
。