Ir para conteúdo

POWERED BY:

Arquivado

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

mathiasbenitez

Drag and Drop não funciona no Firefox e IE.

Recommended Posts

Olá,

Não estou conseguindo fazer o drag and drop funcionar no Firefox e IE, no chrome tudo esta normal.

HTML

<button id="cima" class="botao" onClick="up()" draggable="true" ondragstart="return dragStart(event)">cima</button>
    
    <button id="compilar" onClick="DoMatriz();setInterval(Atualizar,1000/75)">Compilar</button>
    <button id="baixo" class="botao" draggable="true" ondragstart="return dragStart(event)">baixo</button>
    <button id="esquerda" class="botao" draggable="true" ondragstart="return dragStart(event)">esquerda</button>
    <button id="direita" class="botao" draggable="true" ondragstart="return dragStart(event)">direita</button>

JS

function dragStart(ev) {
   ev.dataTransfer.effectAllowed='move';
   ev.dataTransfer.setData("text/plain", ev.target.getAttribute('id'));
   //ev.dataTransfer.setDragImage(ev.target,0,0);  
   
   return true;
}
function dragEnter(ev) {
   event.preventDefault();
   return true;
}
function dragOver(ev) {
    return false;
}
function dragDrop(ev) {
  ev.preventDefault();
  var data=ev.dataTransfer.getData("text");
  var node = document.getElementById(data).cloneNode(true); //Clone
  
  if(node.className=='botao'){
	  console.log("aLTERANDO CLASSE")
	  node.className='botaoNode';
  }
  
  if (node.id=='loopStart'){
	  console.log("clone pego");
	  node.getElementsByTagName('select')[0].id='qntloop'+newloop;
	  node.getElementsByTagName('select')[0].style.visibility='visible';
	  console.log("mudando visibilidade")
	  newloop++;
	  
	node.draggable=false;
	ev.target.appendChild(node);
    
	  }
  node.draggable=false;
  ev.target.appendChild(node);

  CountCell+=1;
  
  
  
  return false;
}

O dragDrop() tem algumas linhas a mais que o comum, mas é por conta do restante do cogido.

Alguem tem alguma ideia do que pode estar acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas, não funciona.

Depurando não apresenta nenhum erro, em nenhum navegador.

coloquei um "console.log()" logo depois que entra no dragstart, dragover etc... No IE ele só não entra no dragOver, enquanto no Firefox não entra nem no DragStart.

A linha de codigo onde deve ocorrer o Drop:

<td id="td1" ondragenter="return dragEnter(event)" ondrop="return dragDrop(event)" ondragover='return dragOver(event)'> </td>
        


Obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, acredito que encontrei a causa.

Firefox: Há um bug que não permite arrastar um elemento <button>, fiz um teste com <div> e tudo OK.

IE: Encontrei uma "solução" mas não faz muito sentido, seria desabilitar em "opções de internet > segurança" o Modo protegido, OU executar como admin. Funcionou, mas quando atualizo a pagina não funciona mais.
O que consegui entender tambem - alguem me corrija caso esteja falando besteira- o IE11 só permite arrastar texto, o qual fiz um teste e tudo funciona normal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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