Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么ClassName会破坏这个代码?_Javascript_Html - Fatal编程技术网

Javascript 为什么ClassName会破坏这个代码?

Javascript 为什么ClassName会破坏这个代码?,javascript,html,Javascript,Html,我创建了两个简单的元素: var mydragg=函数{ 返回{ 移动:functiondiv,xpos{ div.style.left=xpos+'px'; }, 开始移动:functiondiv、容器、evt{ evt=evt | | window.event; var posX=evt.clientX, divLeft=div.style.left, eWi=parseIntdiv.style.width=200px, cWi=parseIntdocument.getElementByI

我创建了两个简单的元素:

var mydragg=函数{ 返回{ 移动:functiondiv,xpos{ div.style.left=xpos+'px'; }, 开始移动:functiondiv、容器、evt{ evt=evt | | window.event; var posX=evt.clientX, divLeft=div.style.left, eWi=parseIntdiv.style.width=200px, cWi=parseIntdocument.getElementByIdcontainer.style.width=200px; document.getElementByIdcontainer.style.cursor='move'; divLeft=divLeft。替换“px”; var diffX=posX-divLeft; document.onmousemove=functionevt{ evt=evt | | window.event; var posX=evt.clientX, aX=posX-diffX; 如果aX<0,则aX=0; 如果aX>cWi aX=cWi; mydragg.movediv,aX; } }, 停止移动:函数容器{ var a=document.createElement'script'; document.getElementByIdcontainer.style.cursor='default'; document.onmousemove=函数{} }, } }; 您正在调用document.getElementByIdcontainer,正如您自己所说,它是一个类而不是id。您应该改为调用document.getElementsByClassName

但是,您只是在文档中查询具有此名称的所有类名,因此您将得到多个类名,并且不知道要选择哪个。有很多解决方案,但其中一个是使用div.parentElement选择父元素可能更容易:


您只需将元素发送到javascript,在javascript中,您只需直接访问您发送的元素,无需再次查询该元素

Html

javascript


你更改/修改的代码“不工作”在哪里?这只是工作的一半。。。您还需要在之后访问返回的节点列表中的特定元素……并注意:`getElementByIdcontainer`返回一个元素,`GetElementyByCassName`返回多个对象。命令发出后,您可能需要[0]对,我回答得太快了。。当我看代码时会编辑我不仅修改了HTML,还修改了CSS和JS。Oswald,谢谢!很好!已更改为document.getElementsByClassNamecontainer[0]
<div class="wrapper">
<div class="container">     
    <div class="green dragme" onmousedown='mydragg.startMoving(this,event);' 
    onmouseup='mydragg.stopMoving(this);'>
    </div>
</div>

<div class="wrapper wrapper-red">
    <div class="container">     
        <div class="red dragme" onmousedown='mydragg.startMoving(this,event);' 
        onmouseup='mydragg.stopMoving(this);'>
        </div>
    </div>
</div>
var mydragg = function(){
return {
  move : function(div,xpos){
    div.style.left = xpos + 'px';
  },
  startMoving : function(div,evt){
    evt = evt || window.event;
    var posX = evt.clientX,
        divLeft = div.style.left,
        eWi = parseInt(div.style.width = "200px"),
        cWi = parseInt(div.style.width = "200px");

    div.style.cursor='move';

    divLeft = divLeft.replace('px','');
    var diffX = posX - divLeft;
    document.onmousemove = function(evt){
      evt = evt || window.event;
      var posX = evt.clientX,
            aX = posX - diffX;
      if (aX < 0) aX = 0;
      if (aX > cWi) aX = cWi;

      mydragg.move(div,aX);
    }
  },
  stopMoving : function(container){
    var a = document.createElement('script');
    container.style.cursor='default';
    document.onmousemove = function(){}
  },
}   }();