Ponizszy kod dodaje na chwile animacje ladowania do przycisku i pozniej przywroca go do normalnego stanu tylko jest za duzo powtarzania kodu. Czy mozna to ugryzc inaczej, aby nie pisac tyle?
Chodzi o to,ze przy wiekszej ilosci przyciskow bedzie mozna sobie palce polamac przy pisaniu :O
Moze uzyc jakos funkcji .find() aby znalezc w przycisku selektor <i>, usunac z niego klase .fa-plus i zastapic ja klasa ikony .fa-spinner?
<button id="btnAdd" class="btn btn-success" onclick="add_book()"><i class="fa fa-plus"></i> Add Book
</button> $("#btnAdd").click(function () {
$(this).html('
<i class="fa fa-spinner fa-spin"></i> Wczytywanie...');//adding animation
$(this).attr('disabled', true);//disabling
setTimeout(() => {
$(this).attr('disabled', false);//enabling
$(this).html('
<i class="fa fa-plus"></i> Add Book');//defaulting
}, 1000);
});
Zamiast ID moglbym uzyc klasy .btn dla wszystkich przyciskow
$(".btn").click(function () {
ale tutaj pojawia sie problem, bo przycisk Edit mialby zmieniony opis na Add Book
Tutaj odnosnik do codepen aby szybko sprawdzic dzialanie