Jump to content
  • 0
Rafael Guia

Como fazer com que um botão mude de cor ao ser clicado e volte a cor original após se clicado novamente?

Question

Olá galera, boa tarde!

 

Alguém pode me ajudar?

Gostaria de clicar no link (que estou utilizando como botão) e que ele mudasse de cor, porém ao clicar novamente, preciso que ele volte a cor normal. 

Ps.: Não tenho como usar jQuery.

 

Segue o código:

 

Utilizei "onDblClick", mas não ficou bom, preciso dar apenas 1 click para voltar a formatação normal.

 

<tr>
      <td width="70%" class="tt">CPF</td>
      <td width="30%"><a href="#vazio" class="check" onClick="this.className='active'" onDblClick="this.className='check'">OK</a></td>
    </tr>

 

 

Grato,

Edited by Alaerte Gabriel
Adição da tag CODE

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

Cria uma variável de controle 0,1

 

<!DOCTYPE html>
<html>
<head>
<style>
.button {
    background-color: #4CAF50;
    border: none;
    color: white;
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer;
}
</style>
</head>

<body>

<a href="#" id="demo" class="button" onclick="myFunction()">Link Button</a>

<script>
var controle = 0;
function myFunction() {
    
    if(controle ==0){
    	document.getElementById("demo").style.background = "blue";
        controle++;
        }
    else{
    	document.getElementById("demo").style.background = "green";
        controle--;
        }
}
</script>

</body>
</html>

 

  • +1 1

Share this post


Link to post
Share on other sites
  • 0

Olha só este exemplo abaixo.

Usando o "classList.toggle", a classe "ok" será incluída caso não exista no elemento, e será retirada caso exista.

Ela irá sofrer uma inversão.

<tr>
   <td width="70%" class="tt">CPF</td>
   <td width="30%">
     <a href="#vazio" class="check" onclick="this.classList.toggle('ok')" >OK</a>
  </td>
</tr>

 

Share this post


Link to post
Share on other sites
  • 0
Em 11/01/2018 at 16:49, kim.y disse:

Cria uma variável de controle 0,1

 


<!DOCTYPE html>
<html>
<head>
<style>
.button {
    background-color: #4CAF50;
    border: none;
    color: white;
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer;
}
</style>
</head>

<body>

<a href="#" id="demo" class="button" onclick="myFunction()">Link Button</a>

<script>
var controle = 0;
function myFunction() {
    
    if(controle ==0){
    	document.getElementById("demo").style.background = "blue";
        controle++;
        }
    else{
    	document.getElementById("demo").style.background = "green";
        controle--;
        }
}
</script>

</body>
</html>

 

boa tarde parceiro de programação, to terminando meu tcc em programação web e seu código me ajudou em parte, eu preciso mais de um botão pra fazer essa mesma função, explicando melhor, cada botão teria que funcionar independente com a mesma função aplicada no seu código para um botão, mas no meu caso em mais de um. teria como me ajudar ? abraços 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Kemily
      Eu preciso de ajuda para poder publicar meu site.
      O professor mandou faze-lo em HTML e CSS e eu fiz mas eu não sei postar e manter as imagens.
      Quando consegui postar as imagens não foram junto.
      O link q consegui fazer sem as imagens ficou assim:
       
      http://hyundai.droppages.com/
    • By danicarla
      Olá pessoas,

      Estou tentando fazer uma versão de impressão usando CSS eu queria colocar um cabeçalho e um rodapé em todas as paginas,  O problema é que o conteúdo vem do banco de dados,  e dependendo do tamanho dos parágrafos em algumas vezes o texto acaba ficando em cima do cabeçalho ou do rodapé.. alguém tem alguma idéia de como posso fazer isso?
       
      Meu cód está assim:
       
      header {font-family:Arial;font-size: 22px;color: #000;text-align: center;} footer {font-family:Arial;font-size: 10px; color: #CD090C;text-align: center;} article {font-family:Arial;font-size: 14px; color: #000;text-align: justify;} @page {size: A4;margin: 11mm 17mm 17mm 17mm;} @media print { header {position: fixed;top: 0;} footer {position: fixed;bottom: 0;} article {position: relative;top:40px;} .content-block, p {top:40px;page-break-inside: avoid;} html, body {width: 210mm;height: 297mm;} } E no HTML
       
      <header>CABEÇALHO</header> <article>Conteudo.. texto.. etc..</article> <footer>Texto do Rodapé</footer>  
    • By violin101
      Caros amigos, saudações...
       
      Estou com um problema para mostrar o RESULTADO da multiplicação de 3 campos (inputs).
       
      Os Campos são: Comprimento x Largura x Altura.
       
      Quando todos os campos(INPUTS) são informados, a Função de Multiplicar é executada com sucesso.
      Exemplo:
      Comprimento : 1.01
      Largura...........: 2.02
      Altura..............: 3.03
      Resultado......: 6.18
       
      Quando um dos Inputs, tem valor = 0 (zero), o cálculo não é executado.
      Exemplo:
      Comprimento : 1.01
      Largura...........: 0.00
      Altura..............: 3.03
      Resultado......: 0.00
       
      Como consigo executar essa operação matemática ?
       
      Abaixo posto o Código que estou usando:
      /*---Função para Calcular o Total do Volume---*/ function calcVolume(){ //Obter valor digitado do comprimento var comprimento = document.getElementById("comprimento").value; comprimento = comprimento.replace(",","."); //Obter valor digitado da largura var largura = document.getElementById("largura").value; largura = largura.replace(",","."); //Obter valor digitado da altura var altura = document.getElementById("altura").value; altura = altura.replace(",","."); //Executa o Valor do Volume if (comprimento > 0 && largura > 0 && altura > 0) { calc_volume = parseFloat(comprimento) * parseFloat(largura) * parseFloat(altura); var numero = calc_volume.toFixed(2).split('.'); numero[0] = numero[0].split(/(?=(?:...)*$)/).join(''); document.getElementById("volume").value = numero.join('.'); } else { document.getElementById("volume").value = "0,00"; } }  
       
      Grato,
       
      Cesar
    • By Marcos RJ
      Olá pessoal, tudo bem?
       
      Tenho um sistema do qual traz em um combobox a relação de grades (masculino, feminino, etc) do banco de dados e a mesma tabela tem chave estrangeira na tabela dos tamanhos. Quando seleciono uma grade, os tamanhos referentes a essa grade aparecem. O problema está quando clico em Incluir nova cor e seleciono uma outra grade. Os tamanhos da nova grade selecionada aparece também na grade já selecionada anteriormente, ou seja, o valor acaba se duplicando. O que está acontecendo é que valor chega até o JQuery, porém quando passo o valor por:
       url: '<?php echo $caminhoAbsoluto; ?>/listar.php?v='+valorEscolhido,  E pego pelo código abaixo:
       
      $grades = $_REQUEST["v"]; echo $metodos->listarTamanhos($grades);   Ele pega o último valor selecionado, porém duplica conforme o anexo. Vejam:
       
      public function listarTamanhos($grades) {     $visualizar = '<table class="table table-bordered">                         <tr>                         <td style="text-align: center; background-color: #367FA9; color: #FFF; font-weight: bold">Tamanho</td>                         <td style="text-align: center; background-color: #367FA9; color: #FFF; font-weight: bold">Quantidade</td>                         <td style="text-align: center; background-color: #367FA9; color: #FFF; font-weight: bold">EAN</td>                         </tr>';     $sql = mysqli_query($this->conexao,"SELECT * FROM loja_tamanho_grades WHERE IdGrades = '".$grades."';");     //while($isfast = mysqli_fetch_object($sql))     // $i = 0;     while($isfast = mysqli_fetch_assoc($sql))     {         $sqlTamanhos = mysqli_query($this->conexao,"SELECT * FROM loja_tamanhos WHERE IdTamanhos = '".$isfast["IdTamanhos"]."';");         $isfastTamanhos = mysqli_fetch_assoc($sqlTamanhos);         $visualizar .= '<tr>                                 <td style="font-weight: bold; text-align: center; font-size: 20px; font-style:Arial">'.$isfastTamanhos["Tamanhos"].'</td>                                 <td><input type="number" class="form-control" min="0" oninput="this.value = Math.abs(this.value)" value="0"></td>                                 <td><input type="text" class="form-control" maxlength="17" style="width: 100%"></td>                             </tr>';                 $visualizar .= '<tr>';         // $visualizar .= '<td colspan="3"><div class="mostrarGrades_'.$i.'"></div></td>';         $visualizar .= '</tr>';                                                         // $i++;                      }         //  $visualizar .= '<tr><td colspan="3"><div class="mostrarGrades"></div></td></tr>';             //$visualizar .= '</table>';         //return $visualizar;     $visualiza[] = $visualizar;     return json_encode($visualiza); } Como faço para que não tenha duplicidade. Veja abaixo o restante do código:
      <table width="100%" > <tr class="linhas"> <td> <table class="table table-bordered"> <tr>         <td style="text-align: center; background-color: #367FA9; color: #FFF; font-weight: bold">Código de cores</td>         <td style="text-align: center; background-color: #367FA9; color: #FFF; font-weight: bold">Cor Básica</td>         <td style="text-align: center; background-color: #367FA9; color: #FFF; font-weight: bold">Grades</td>     </tr> <tr>     <td style="text-align: center; width: 40%"><input type="text" class="form-control" placeholder="Referência"></td>     <td style="text-align: center; width: 30%">     <select name="CoresBasicas" class="form-control">     <?php echo $metodos->comboCores($key); ?>     </select>             </td>     <td style="text-align: left;">         <select name="Grades" class="form-control grades" style="width: 100%">         <?php echo $metodos->comboGrades(); ?>         </select>         </td>     </tr>     <tr>     <td colspan="3">         <?php //echo $metodos->listarTamanhos(); ?>     <div class="mostrarGrades"></div>     </td> </tr> <tr> <td colspan="3" class="text-left"> <label for='files' class="upload">Selecionar fotos <i class="fa fa-plus-circle fa-lg" aria-hidden="true"></i></label> <input id='files' type='file' name="Fotos[]" multiple> </td> </table> Jquery
      $(function () {   function removeCampo() {     $(".removerCampo").unbind("click");     $(".removerCampo").bind("click", function () {        if($("tr.linhas").length > 1){         $(this).parent().parent().remove();        }     });   }   $(".adicionarCampo").click(function () {     novoCampo = $("tr.linhas:first").clone();     //novoCampo.find("input").val("");     novoCampo.find('input[type="text"]').val("");     novoCampo.find('select').val("");     //novoCampo.find('input[type="radio"]').prop('selected', false);     novoCampo.insertAfter("tr.linhas:last");     removeCampo();   }); }); $(document).ready( function (){ $(document).on('change', '.grades', function(){ valorEscolhido = $(this).find('option:selected').val(); $.ajax({ type:'post', dataType: 'json', url: '<?php echo $caminhoAbsoluto; ?>/listar.php?v='+valorEscolhido, success: function(dados){ /* for(var i=0;dados.length>i;i++){ $('.mostrarGrades').html(dados[i]); } */ $('.mostrarGrades').html(dados); } }); }); }); Obrigado!
       

    • By GabrielSCastro
      Olá pessoa, terminei a faculdade e recebi algumas propostas de projetos web, mas como ainda estou iniciando não tenho muita noção de quanto cobrar.
      Para um site, eu pensei em cobrar um valor razoável de entrada , e além deste valor, definir um contrato de um valor mensal para fazer manutenções necessárias, assim eu terei o cliente e uma renda sempre. Por outro lado, o cliente pode ficar com o site por pouco tempo e não chegar ao valor que eu gostaria pelo projeto. 
      Pensei também em cobrar por projeto, no minimo R$ 1000 por um site simples, já que to começando.

      Ai entra outro falta de experiência minha. Se eu cobrar por projeto, o cliente ficaria responsável por pagar o domínio e hospedagem dele ou eu contrataria uma hospedagem com a possibilidade de hospedar varios sites para quando eu tiver mais clientes.

      Indo mais direto ao ponto, gostaria que me ajudasse em como começar, cobrar, etc.

      Agradeço a quem puder ajudar.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.