Кнопка переключения Bootstrap запускает несколько событий изменения
У меня возникли проблемы с работой переключателя Bootstrap ( http://www.bootstraptoggle.com/). Добавил мою кнопку переключения следующим образом
<input type="checkbox" checked data-toggle="toggle" data-on="Redigér" data-off="Deaktivér" data-onstyle="danger" data-offstyle="primary" id="aktiv_toggle">
Кнопка используется для отключения / включения всех элементов внутри набора полей.
При нажатии на кнопку переключения я обрабатываю событие изменения следующим образом:
$(function() {
$('#aktiv_toggle').change(function() {
alert("test");
if ($(this).prop('checked')) {
$("#aktiver").prop("disabled", true);
} else {
$("#aktiver").prop("disabled", false);
}
})
})
Поместите предупреждение, чтобы убедиться, что я получаю многократное событие изменения (иногда не всегда). Не могу понять, что я сделал не так?
БОНУСНАЯ ИНФОРМАЦИЯ: Случайно, сколько раз срабатывает событие изменения. Иногда только один раз, иногда 2 или 3 раза.
ОБНОВЛЕНИЕ (проблема "изменилась"): кнопка переключения находится внутри php-файла, который загружается в мой контент DIV с помощью AJAX. Если я удаляю свой импорт Togglebutton STYLE и SCRIPT из моего php-файла и помещаю его в HEAD индекса вместе с другими стилями и скриптами, то кнопка переключения отлично работает. Но ЭТО действительно необходимо, чтобы поместить весь импорт CSS и скриптов в заголовок индекса. Разве нельзя динамически загружать эти включения в зависимости от того, какую страницу я загружаю в мой DIV?
1 ответ
Я использовал следующее, если найду лучшее решение, я также добавлю его сюда:
if($("#zoomCheckBox").is('*')){
window.zoomToggleoldVal = $('#zoomCheckBox').prop('checked');
$('#zoomCheckBox').change(function () {
if (window.zoomToggleoldVal == $('#zoomCheckBox').prop('checked')){
return;
} else {
window.zoomToggleoldVal = $('#zoomCheckBox').prop('checked');
}
//execute your code just oance
console.log('test',window.zoomToggleoldVal);
});
}