Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Msx

quando eu clico no link 2 ou 3 é o 1 que fica verde

Recommended Posts

Gente eu tenho o seguinte script:

<p>Clique no link abaixo e espere 10 segundos para mudar de cor</p>

<a id="mudarDeCor" href="https://br.answers.yahoo.com" onclick="myFunction()" target="_blank">Clique Aqui</a> <br/><br/>
<a id="mudarDeCor" href="https://br.answers.yahoo.com" onclick="myFunction()" target="_blank">Clique Aqui2</a> <br/><br/>
<a id="mudarDeCor" href="https://br.answers.yahoo.com" onclick="myFunction()" target="_blank">Clique Aqui3</a> <br/><br/>

<script language="javascript">
function myFunction() {
document.getElementById("mudarDeCor").style.color = "green";
setTimeout(function(){
document.getElementById("mudarDeCor").style.color = "blue";
}, 10000);
}
</script>

Tem um erro nele, quando eu clico no link 2 ou 3 é o 1 que fica verde. Tem como me ajudar? Quero que quando clicar no 1 ele fique verde quando clicar no 2 o próprio 2 fique ver e assim segue...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema do teu código é que estás a atribuir o mesmo ID a elementos diferentes quando este atributo deve ser único para cada elemento existente na tua página HTML.

 

Como todos os elementos têm o mesmo ID, o código simplesmente afecta a cor do primeiro elemento existente no DOM com esse ID.

 

Em vez disso, podes usar uma classe. Algo assim:

<p>Clique no link abaixo e espere 10 segundos para mudar de cor</p>
<a class="mudarDeCor" href="#" onclick="myFunction(this)" target="_blank">Clique Aqui</a>
<br/>
<br/>
<a class="mudarDeCor" href="#" onclick="myFunction(this)" target="_blank">Clique Aqui2</a>
<br/>
<br/>
<a class="mudarDeCor" href="#" onclick="myFunction(this)" target="_blank">Clique Aqui3</a>
<br/>
function myFunction(element) {
  element.style.color = "green";
  setTimeout(function() {
    element.style.color = "blue";
  }, 10000);
}

Repara ainda que alterei ligeiramente a função para receber um argumento (this), que referencia o elemento que foi clicado para alterar apenas a cor deste, deixando os outros intactos.

 

Exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu amigo deu um jeito pra mim, ele fez assim:

 

<p>Clique no link abaixo e espere 10 segundos para mudar de cor</p>
<a id="id1" href="https://br.answers.yahoo.com" onclick="myFunction(event)" target="_blank">Clique Aqui</a> <br/><br/>
<a id="id2" href="https://br.answers.yahoo.com" onclick="myFunction(event)" target="_blank">Clique Aqui2</a> <br/><br/>
<a id="id3" href="https://br.answers.yahoo.com" onclick="myFunction(event)" target="_blank">Clique Aqui3</a> <br/><br/>
<script language="javascript">
function myFunction(s) {
var id = s.target.id;
document.getElementById(id).style.color = "green";
setTimeout(function(){
document.getElementById(id).style.color = "blue";
}, 10000);
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Carlos Web Soluções Web
      Olá...
      Estou tentando fazer o seguinte !!
      Listando dados em tabela !!
      Gostaria que....se na listagem houver 4 linhas...indepedente de seu número de ID, faça a listagem em ID ser em ordem 1 2 3 4 !!
      Exemplo...se tiver uma listagem de dados que está em ID 1 3 3...faça ficar 1 2 3 !!

       
      echo "<table class='tabela_dados' border='1'> <tr> <td>ID</td> <td>Nome Empresa</td> <td>Responsável</td> <td>Telefone 1</td> <td>Telefone 2</td> <td>E-mail 1</td> <td>E-mail 2</td> <td>Endereço</td> <td>CEP</td> <td>Bairro</td> <td>AÇÃO 1</td> <td>AÇÃO 2</td> </tr> "; $sql = "SELECT ID FROM usuarios_dados WHERE Usuario='$usuario'"; $result = $conn->query($sql); $num_rows = $result->num_rows; $Novo_ID = 1; for ($i = 0; $i < $num_rows; $i++) { $registro = $result -> fetch_row(); $sql2 = "UPDATE usuarios_dados SET ID='$Novo_ID' WHERE ID='$Novo_ID'"; $result2 = $conn->query($sql2); $Novo_ID++; } $sql = "SELECT * FROM usuarios_dados"; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data of each row while($row = $result->fetch_assoc()) { echo "<tr> <td>$row[ID]</td> <td>$row[Nome_Empresa]</td> <td>$row[Responsavel]</td> <td>$row[Telefone_1]</td> <td>$row[Telefone_2]</td> <td>$row[Email_1]</td> <td>$row[Email_2]</td> <td>$row[Endereço]</td> <td>$row[CEP]</td> <td>$row[Bairro]</td> <td> <form method='post' action='Editar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='EDITAR'> </form> </td> <td> <form method='post' action='Deletar_Dados.php'> <input type='hidden' name='usuario' value='$usuario'> <input type='hidden' name='senha' value='$senha'> <input type='hidden' name='ID' value='$row[ID]'> <input type='submit' style='padding: 10px;' value='DELETAR'> </form> </td> </tr> "; } } else { echo "0 results"; } $conn->close();  
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.