У меня есть набор кнопок, которые по умолчанию загружаются без класса, который я им хочу (со стороннего сайта). Кнопки меняются каждый раз, когда я нажимаю на них - это цифры (1 - 21) для прокрутки <table>
, но не все они отображаются одновременно. Таким образом, я пытался добавить нужный им класс после того, как щелкнул по ним.
Сначала он работал нормально, но как только я переместил фактический файл данных (PHP) в отдельный файл и сделал кнопку для извлечения данных с помощью ajax (данные выбираются только один раз) начались проблемы.
Теперь кнопки работают каждую 2-ю - 3-ю попытку.
HTML код:
<div class="dataTables_paginate paging_simple_numbers" id="minTabell_paginate">
<a class="paginate_button previous btn btn-info float-left" aria-controls="minTabell" data-dt-idx="0" tabindex="0" id="minTabell_previous" style="margin-right: 3px;">Previous</a>
<span>
<a class="paginate_button current" aria-controls="minTabell" data-dt-idx="1" tabindex="0">1</a>
<a class="paginate_button " aria-controls="minTabell" data-dt-idx="2" tabindex="0">2</a>
<a class="paginate_button " aria-controls="minTabell" data-dt-idx="3" tabindex="0">3</a>
<a class="paginate_button " aria-controls="minTabell" data-dt-idx="4" tabindex="0">4</a>
<a class="paginate_button " aria-controls="minTabell" data-dt-idx="5" tabindex="0">5</a>
<span class="ellipsis">…</span>
<a class="paginate_button " aria-controls="minTabell" data-dt-idx="6" tabindex="0">21</a>
<!-- Goes up to 21 -->
</span>
<a class="paginate_button next" aria-controls="minTabell" data-dt-idx="7" tabindex="0" id="minTabell_next">Next</a>
</div>
Когда они загружены функцией ajax, им присваивается класс и стиль в соответствии со следующим кодом:
$('.paginate_button').addClass('btn btn-info');
$('.paginate_button').addClass('float-left');
$(".paginate_button").css("margin-right","3px");
.., который прекрасно работает. Но затем, когда я пытаюсь добавить те же классы, что и числа, корректируемые для отображения других чисел, это работает только иногда. Я регулярно пробовал .click(function() {})
с плохими результатами, а затем искал этот сайт и теперь использую:
<script>
$('body').on('click', 'div.dataTables_paginate', function(event) {
$('.paginate_button').addClass('btn btn-info');
$('.paginate_button').addClass('float-left');
$(".paginate_button").css("margin-right","3px");
console.log("Click received");
$('td').each(function(i){
$(this).html($(this).html().replace('_',' '));
});
});
</script>
Что, опять же, работает около трети кликов.
Вкратце: мой код HTML продолжает корректироваться при прокрутке набора чисел, но мне не удается повторно применить классы и CSS с использованием функций jQuery.
Может кто-нибудь сказать мне, где я иду не так и указать мне в правильном направлении?