

MrCharset
Members-
Content count
11 -
Joined
-
Last visited
Community Reputation
0 ComumAbout MrCharset

-
Como chamar uma função apenas se dois eventos ocorrerem?
MrCharset replied to MrCharset's topic in Javascript
Consegui!!! O brigado pela ajuda. Só precisei trocar o .click e o if de posição. function mvPeca_frente() { echo'<script> $("#'.$this->nome_peca.'").click(function() { if(document.getElementById(String(parseInt($("#'.$this->nome_peca.'").parent().attr("id")- 5))).children.length< 1) { $("#'.$this->nome_peca.'").appendTo("#" + String(parseInt($("#'.$this->nome_peca.'").parent().attr("id"))- 5)); } }); </script>'; }- 7 replies
-
- settimeout
- function
-
(and 2 more)
Tagged with:
-
Como chamar uma função apenas se dois eventos ocorrerem?
MrCharset replied to MrCharset's topic in Javascript
PS.: Começo a envolver PHP no código. Mas acho que a interferência é mínima e não é necessário mudar a categoria da pergunta. Eu deveria criar um novo tópico exclusivo para essa nova abordagem?- 7 replies
-
- settimeout
- function
-
(and 2 more)
Tagged with:
-
Como chamar uma função apenas se dois eventos ocorrerem?
MrCharset replied to MrCharset's topic in Javascript
Meio que desisti desta ideia. Tô tentando através de outra abordagem: Cada 1 dos 25 terrenos que compõem o tabuleiro tem como id um número: 1 2 3 4 5 6 7 8 9 10 11 12 13 1 4 15 16 17 18 19 20 21 22 23 24 25 Esse é meu tabuleiro. Cada número representa um terreno e, ao mesmo tempo, é o seu id. Então minha "estratégia" para implementar a movimentação é: Pra frente: -5 terrenos. Pra trás: +5 terrenos. Pra direita: +1 terreno. Pra esquerda: -1 terreno. Para a implementação (do movimento para frente), estou usando: $("#'.$this->nome_peca.'").appendTo("#" + String(parseInt($("#'.$this->nome_peca.'").parent().attr("id")) - 5)); O parent de $("#'.$this->nome_peca.'") é a div atual da peça. E eu me movo (usando o appendTo) para esse valor -5. Até aí tudo bem. Mas aí entra a questão de o terreno para o qual quero me mover estar ocupado. Verifico assim: if (document.getElementById(String(parseInt($("#'.$this->nome_peca.'").parent().attr("id") - 5))).children.length <= 0) As divs vazias não têm filhos (logo, =0). As ocupadas têm um filho (logo, não conseguiria me mover até elas, em teoria). Juntando tudo, essa é a validação e a execução do movimento pra frente: function mvPeca_frente() { echo'<script> if(document.getElementById(String(parseInt($("#'.$this->nome_peca.'").parent().attr("id")- 5))).children.length< 1) { $("#'.$this->nome_peca.'").click(function() { $("#'.$this->nome_peca.'").appendTo("#" + String(parseInt($("#'.$this->nome_peca.'").parent().attr("id"))- 5)); }); } </script>'; } Porém, não está funcionando. Eu "invado" casas ocupadas.- 7 replies
-
- settimeout
- function
-
(and 2 more)
Tagged with:
-
Como chamar uma função apenas se dois eventos ocorrerem?
MrCharset replied to MrCharset's topic in Javascript
Mas o problema está justamente em fazer essa associação entre peça escolhida e sua (possível) nova posição.- 7 replies
-
- settimeout
- function
-
(and 2 more)
Tagged with:
-
Como chamar uma função apenas se dois eventos ocorrerem?
MrCharset replied to MrCharset's topic in Javascript
Obrigado. Na verdade é para movimentar a peça de um jogo: Os primeiros dez botões, classe "b3", representam 10 casas de um tabuleiro. Os outros seis botões, classe "b4", representam cada um uma peça do jogo. Eu preciso que o usuário escolha uma peça e uma nova posição pra essa peça se movimentar. Aí depois eu verifico se essa nova posição está "vazia" (essa parte está tranquila) para poder mover a peça ou se ela está "ocupada", fazendo a peça mais fraca morrer. Mas essa parte está andando. O problema é associar a escolha da peça com a escolha da nova posição.- 7 replies
-
- settimeout
- function
-
(and 2 more)
Tagged with:
-
Eu tenho vários botões da classe "b3". Um desses tem id="bt1" e display="block". Também tenho vários botões da classe "b4". Um desse tem id="bt2" e display="none" Quando clico em algum dos "b3", o display deles todos fica "none" e o display de todos os "b4" fica "block" //parei a implementação aki... Mas eu preciso que pra cada combinação "b3" + "b4" ocorra um função diferente baseado no id dos botões deles. Por exemplo, teria um função específica e única para a combinação "bt1" + "bt2" A classe "b3" tem 10 botões e a "b4" tem 6. Eu, teoricamente, preciso fazer 60 funções, e, mesmo assim, nem sei o que por nessa funções!!! Preciso unir dois .clicks para executar cada uma das 60 funções E, além disso, tem uma forma de não serem necessárias 60 funções (com possíveis 60 ifs)? Desde já obrigado a todos.
- 7 replies
-
- settimeout
- function
-
(and 2 more)
Tagged with:
-
Por que um evento baseado no id de um elemento continua funcionando mesmo após a mudança do id do mesmo?
MrCharset replied to MrCharset's topic in Javascript
$("#E25").on("click","input",e25); function e25() { setTimeout(function() { $("#E25").off("click","input",e25); document.getElementById("E25").style.display="none"; }, 2000); $(".class").draggable ({ containment: "#d1", connectToSortable: "#ter25" }); $("#ter25").droppable ({ hoverClass: "ter-ativo", drop: function() { push($(this).html()); } }); } Também não funcionou! Desta vez, o display do botão nem muda. E, pra ser sincero, não entendi muito bem como on/off funciona. -
Por que um evento baseado no id de um elemento continua funcionando mesmo após a mudança do id do mesmo?
MrCharset replied to MrCharset's topic in Javascript
Pita, obrigado. Minha versão com bind/unbind não está funcionando: $("#E25").bind("click", e25); function e25() { setTimeout(function() { $("#E25").unbind("click", e25); document.getElementById("E25").style.display = "none"; }, 2000); $(".class").draggable ({ containment: "#d1" }); $("#ter25").droppable ({ hoverClass: "ter-ativo", drop: function() { push($(this).html()); } }); } Vou ver agora on/off. -
Por que um evento baseado no id de um elemento continua funcionando mesmo após a mudança do id do mesmo?
MrCharset posted a topic in Javascript
Boa noite a todos. Olhem, por favor, este trecho de código: $("#E25").click(function() { setTimeout(function() { document.getElementById("ter25").id = "t25"; document.getElementById("E25").style.display = "none"; }, 2000); $(".class").draggable ({ containment: "#d1", connectToSortable: "#ter25" }); $("#ter25").droppable ({ hoverClass: "ter-ativo", drop: function() { push($(this).html()); } }); }); Eu tenho um botão de id E25. Quando clico nele, divs membras da classe class (criatividade) tornam-se arrastáveis. Essas mesmas divs podem ser "droppadas" em outra div, de id ter25. Porém, preciso que apenas uma div da classe class seja "droppada" na ter25. Então, criei uma função que muda o id da ter25 para t25. Essa funçao é executada 2 segundos após o clique no botão E25. Assim, pensei eu, as divs da classe class não vão mais poder ser "droppadas". Mas me enganei. Por quê?!!! O que determina a div droppable é seu id, e eu mudei seu id!