Javascript 为什么ClassName会破坏这个代码?
我创建了两个简单的元素: 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 为什么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
您只需将元素发送到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(){}
},
} }();