javascript - Cannot change value of variable from true to false -
updating now, found out need disable function change while, made var enabled , make functions available if var enabled == true, in end of functions i'm passing enabled = false;, should disable function change();, after first time, still working perfectly. me ?
//this function give me id of images, can make conditions according id var enabled = true; function pegaid(obj){ var idcorreto = obj.getattribute('id'); return idcorreto; } if(enabled == true){ function drag(obj){ var zindeximg = 0; //with var id, detect image being dragged id var id = obj.getattribute('id'); var img = document.getelementbyid(id); var imgpositionleft = img.offsetleft; var imgpositiontop = img.offsettop; img.ondragstart = function(){ return false; }; function dropimage(e){ img.style.transition = ""; img.style.zindex = zindeximg++; //make drag of imgs img.style.top = e.clienty - imgpositiontop +'px'; img.style.left = e.clientx - imgpositionleft + 'px'; console.log(e.clientx - imgpositionleft); } function change(id1,id2,div1,div2){ //this function make change of imgs img.removeattribute('style'); //i put imgs , divs kept in these vars var imgdiv = document.getelementbyid(div1); var imgdiv_2 = document.getelementbyid(div2); var imgid = document.getelementbyid(id1); var imgid2 = document.getelementbyid(id2); //take id of both imgs var getid = imgid.getattribute('id'); var getid2 = imgid2.getattribute('id'); //and change id's imgid.setattribute('id',getid2); imgid2.setattribute('id',getid); //and overwrite imgs in divs, making change imgdiv.innerhtml = imgid2.clonenode().outerhtml; imgdiv_2.innerhtml = imgid.clonenode().outerhtml; } function drop(e){ //this function drop of img dropimage(e); //remove added events document.removeeventlistener('mousemove' ,dropimage); document.removeeventlistener('mouseup', drop); //find out image clicked can make right change if(img.style.left >= '90px' && img.style.left <= '130px'){ //take id know image being dragged if(pegaid(obj) == 'teste1'){ //and make change change("teste1","teste2","img1","img2"); }else if(pegaid(obj) == 'teste2'){ change("teste2","teste3","img2","img3"); } } if(img.style.left >= '230px' && img.style.left <= '250px'){ change("teste1","teste3","img1","img3"); } if(img.style.left >= '-115px' && img.style.left <= '-130px'){ if(pegaid(obj) == 'teste3'){ change("teste2","teste3","img2","img3"); } else if(pegaid(obj) == 'teste2'){ change("teste2","teste1","img2","img1"); } } if(img.style.left >= '-225px' && img.style.left <= '-250px'){ change("teste1","teste3","img1","img3"); } //reset values after change img.style.left = '0px'; img.style.top = '0px'; } //add events again when img clicked img.addeventlistener('mousedown', function(){ document.addeventlistener('mousemove', dropimage); document.addeventlistener('mouseup', drop); }); } enabled = false; }
i find out problem was changing id in same function changing images, , bringing trouble function. able fix problem making changing of images in 1 function , change of id in function:
//function change imgs places function change(id1,id2,div1,div2){ img.removeattribute('style'); var imgdiv = document.getelementbyid(div1); var imgdiv_2 = document.getelementbyid(div2); var imgid = document.getelementbyid(id1); var imgid2 = document.getelementbyid(id2); imgdiv.innerhtml = imgid2.clonenode().outerhtml; imgdiv_2.innerhtml = imgid.clonenode().outerhtml; } //function change imgs id's function trocaid(id1,id2){ var id_1 = document.getelementbyid(id1); var id_2 = document.getelementbyid(id2); id_1.setattribute('id',id2); id_2.setattribute('id',id1); } //making changes if(img.style.left >= '250px' && img.style.left <= '290px'){ if(pegaid(obj) == 'teste1'){ change("teste1","teste2","img1","img2"); trocaid("teste1","teste2"); }else if(pegaid(obj) == 'teste2'){ change("teste2","teste3","img2","img3"); trocaid("teste2","teste3"); }
Comments
Post a Comment