Ir para conteúdo

MrCharset

Members
  • Total de itens

    11
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre MrCharset

  1. MrCharset

    Como chamar uma função apenas se dois eventos ocorrerem?

    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>'; }
  2. MrCharset

    Como chamar uma função apenas se dois eventos ocorrerem?

    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?
  3. MrCharset

    Como chamar uma função apenas se dois eventos ocorrerem?

    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.
  4. MrCharset

    Como chamar uma função apenas se dois eventos ocorrerem?

    Mas o problema está justamente em fazer essa associação entre peça escolhida e sua (possível) nova posição.
  5. MrCharset

    Como chamar uma função apenas se dois eventos ocorrerem?

    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.
  6. 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. $("#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.
  8. 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.
  9. 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!
  10. Sou estudante. O notebook precisa rodar o Visual Studio, o Virtual Box (uso uma máquina virtual do Windows XP (uns 512MB de RAM)), o ArgoUML, o EasyPHP, o MySQL Workbench e Netflix. E que sistema operacional vocês me recomendam por no notebook que me indicarem (tendo em mente que preciso de versões recentes dos programas acima?
×

Informação importante

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