2014-01-21 3 views
1

Я пытаюсь изменить текст кнопки, а также связанный с ней файл значка при щелчке, а затем снова отменить это при щелчке. У меня есть на полпути, и я могу переключать класс значка и цвет кнопки, однако, если я попытаюсь изменить текст или html кнопки, он удалит ссылку на значок. Есть ли более эффективный способ, чтобы получить это все сделанотекст и значок кнопки изменения (шрифт awesome) при нажатии кнопки

HTML

<button type="button" class="btn btn-success btn-sm" id="newSale"> 
    <i id="iconChange" class="fa fa-plus"></i> add new 
</button> 

.js

$("#newSale").click(function() { 
    $("#openNewSale").slideToggle("slow", function() { 
    $('#newSale').toggleClass('btn-success').toggleClass('btn-danger'); 
    $('#iconChange').toggleClass('fa-plus').toggleClass('fa-minus'); 
    }); 
}); 

ответ

3

Вы можете проверить состояние отображения openNewSale с помощью if($("#openNewSale").is(":hidden")) и изменять классы соответственно

$("#newSale").click(function() { 
    $("#openNewSale").slideToggle("slow", function() { 
    $('#newSale').toggleClass('btn-success').toggleClass('btn-danger'); 
     if($("#openNewSale").is(":hidden")) 
     { 
      $("#newSale").html('<i id="iconChange" class="fa fa-plus"></i> add new');  
     } 
     else 
     { 
      $("#newSale").html('<i id="iconChange" class="fa fa-minus"></i> remove'); 
     } 
    }); 
}); 

FIDDLE

+0

Это по существу делает то же самое, что я делаю прямо сейчас, но с большим количеством кода. Главное, что мне нужно добавить, - это изменить текст кнопки при сохранении значка. – user1881482

+0

Фактически вы использовали свой код, но изменили jquery-вызовы '$ ('# iconChange'). RemoveClass ('fa-plus'). addClass ('fa-minus'); 'to' .empty(). html (' Добавить новый'); ', а затем обратное в инструкции else. Познакомимся со мной – user1881482

+0

См. Мой обновленный ответ –

Смежные вопросы