Атрибут jQuery remove не будет работать, если несколько кликов в быстрой скорости

58
6

У меня есть некоторые флажки на моей странице. Через функцию изменения jQuery я добавляю div, если флажок установлен. Если флажок не установлен, удалите этот div. Он работает нормально, если вы нажимаете медленную скорость. Всякий раз, когда несколько попыток щелчка происходит с быстрой скоростью, он не удаляет div. Он сохраняет добавление div в несколько раз. Может кто-нибудь, пожалуйста, помогите мне исправить это? Следующая моя попытка.

<script type="text/javascript">
$('#include_addon_checkbox_<?PHP echo $addon_ids; ?>').change(function(){
if($(this).is(':checked')){

var summary_div = '<div class="sidebar_addon" id="sidebar_addon_<?PHP echo $addon_ids ?>"><div class="addon-content"><?PHP echo str_replace("_", " ", $addons_keys) ?><p><?PHP echo $addon_package_name; ?> <a href="javascript:;" data-toggle="modal" data-target="#myModal_<?PHP echo $addon_ids; ?>"><span>(more details)</span></a></p></div><div class="addon-price">$ <?PHP echo $addon_package_price; ?></span></div>';

$('#addons_container').append(summary_div);
$('#sidebar_addon_<?PHP echo $addon_ids ?>').hide().slideDown(750);
}
else {
$('#sidebar_addon_<?PHP echo $addon_ids ?>').slideUp(750, function(){ $(this).remove(); });
}
});
</script>

спросил(а) 2017-09-24T11:23:00+03:00 3 года назад
1
Решение
57

Я думаю, что речь идет о ваших настройках анимации. Вы можете любоваться временем анимации до 200-300 мс. Или отключите все флажки, пока ваша анимация не закончится. Затем включите их.

ответил(а) 2017-09-24T11:44:00+03:00 3 года назад
57

возможно, проблема с переменной php. вы можете попробовать следующее:

<script>
var addon_ids = "<?PHP echo $addon_ids ?>";
var content = .....;
and so on......;
</script>
<script>
$(function(){
$('#include_addon_checkbox_'+addon_ids ).change(function(){
add you code.
})
})
</script>

Перед загрузкой страницы переменная php присваивается переменной js. то jquery загрузите его.

ответил(а) 2017-09-24T11:33:00+03:00 3 года назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема