Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 拖放后更改高度_Javascript_Html_Drag And Drop - Fatal编程技术网

Javascript 拖放后更改高度

Javascript 拖放后更改高度,javascript,html,drag-and-drop,Javascript,Html,Drag And Drop,全部, 我有一个圆圈,我从上半音拖到下半音。请看小提琴。单击底部的圆圈后,我尝试用输入按钮更改高度。输入按钮位于顶部和底部div之间,使用增量值5 但是,我的事件处理程序在从5增加到10后不会更改高度值 我的目标是允许更改高度,特别是在我在底部和div中放置了一个圆圈,并选择了该圆圈以模拟激活后 我试图将事件处理程序与圆圈和输入按钮关联的方式是否有问题 问题是,目标元素的click事件侦听器仅在单击时调用change函数。换言之,拖放元素时不会触发更改函数,因为没有触发任何单击事件。因此,cha

全部,

我有一个圆圈,我从上半音拖到下半音。请看小提琴。单击底部的圆圈后,我尝试用输入按钮更改高度。输入按钮位于顶部和底部div之间,使用增量值5

但是,我的事件处理程序在从5增加到10后不会更改高度值

我的目标是允许更改高度,特别是在我在底部和div中放置了一个圆圈,并选择了该圆圈以模拟激活后

我试图将事件处理程序与圆圈和输入按钮关联的方式是否有问题

问题是,目标元素的click事件侦听器仅在单击时调用change函数。换言之,拖放元素时不会触发更改函数,因为没有触发任何单击事件。因此,change函数中定义的activeShape变量不会指向元素,因为从未调用change函数

另一种方法是使用。最后一个子元素始终是附加的最后一个元素,这意味着您在更改高度时将始终以最近删除的元素为目标

阅读您的评论后:

除了上面的更改之外,您似乎还在寻找更改事件,而不是更改事件。当元素的值更改时,将同步激发输入事件,而当焦点从该字段移除时,将在模糊时激发


这看起来很不寻常,但您应该在进行更改后移出输入,或者使用向上/向下键来跟踪输入更改。总的来说,这是需要的。在现代浏览器中,对于这种情况,oninput事件是更好的选择

onchange-仅在调出焦点后 oninput-与onchange相同,但不需要模糊焦点 关于财产变更-
只要将HTML中的onchange更改为oninput,您的问题就会得到解决。

Josh,非常感谢您的快速响应!然而,在将输入从5增加到10到15…等之后,圆的高度仍然没有改变。尤其是当你试图瞄准最后一个孩子的时候。奇怪的是,在您更改增量值后,将鼠标悬停在底部div上,然后圆的高度会发生变化。@M_devera-然后您似乎想要输入事件。我更新了我的答案,下面是一个更新的示例->
destinationContainer.addEventListener("click", change);

function change(event) {
  activeShape = event.srcElement;
}

function changeHeight(event) {
  //var height = (parseInt(activeShape.clientHeight, 10) +        parseInt(event.target.value, 10)) + "px";
  activeShape.style.height = event.target.value + "px";
}
function changeHeight(event) {
  var activeShape = destinationContainer.querySelector(':last-child');

  if (activeShape !== null) {
    activeShape.style.height = event.target.value + "px";
  }
}
var destinationContainer = document.querySelector("#destination");
var input = document.querySelector('#height-input');

input.addEventListener('input', function (event) {
  var activeShape = destinationContainer.querySelector(':last-child');

  if (activeShape !== null) {
    activeShape.style.height = event.target.value + "px";
  }
});