Если ваш AJAX вызов работает, значит, проблема в операторе if
. hasClass()
возвращает логическое значение, но вы пытаетесь сравнить его со строкой класса для поиска. Вместо этого необходимо указать строку в качестве аргумента функции, например:
if ($("button#btn_hideshow").hasClass("btn-primary") {
При этом существует лучший способ сделать то, что вам нужно.
Как btn
и btn-sm
классы всегда присутствуют в элементе, который они могут быть удалены из вашей логики c. Все, что вам нужно сделать, это переключить классы btn-primary
и btn-info
на button
. Точно так же дочерний элемент <i>
можно сохранить вместо удаления / повторного добавления, а классы fa-eye
и fa-eye-slash
можно переключать. Таким образом, попробуйте это:
// outside AJAX callback:
let $button = $("#btn_hideshow");
// inside AJAX callback:
$button.toggleClass('btn-primary btn-info').find('i').toggleClass('fa-eye-slash fa-eye')