mudar botao com evento

by gpublio

HTML

<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
    Mostrar painel
  </a>
<div class="collapse" id="collapseExample">
  <div class="card text-white bg-success mb-3" style="max-width: 18rem;">
    <div class="card-header">Botão alterado!</div>
    <div class="card-body">
      <p class="card-text">O valor do botão foi alterado, e agora ele possui novo título. Você também pode alterar sua funcionalidade.</p>
    </div>
  </div>
</div>
<div id="banner-message">
  <p>Hello World</p>
  <button>Mudar cor</button>
</div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#banner-message {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}

JavaScript

// find elements
var banner = $("#banner-message")
var button = $("button")
var colaps = $("#collapseExample")

colaps.on("show.bs.collapse", function() {
  button.html("Abrir link");
})
colaps.on("hide.bs.collapse", function() {
  button.html("Mudar cor");
})
// handle click and add class
button.on("click", function() {
  banner.addClass("alt")
})