Javascript 未将xy位置设置为0,0的节点的setXY函数

Javascript 未将xy位置设置为0,0的节点的setXY函数,javascript,dom,yui3,Javascript,Dom,Yui3,我必须使一个div正好出现在输入框旁边,但是这个div直接位于主体下方,而输入框位于许多div之下 所以这个场景是我有很多输入,我想显示这个div内容中的一些错误。我检查在blur上输入的内容,然后选择发生blur的任何输入,取这个输入框的位置,设置div的xy位置,然后取消隐藏它 守则: var input=Y.one("#input1"); var errorDiv=Y.one('#errorDiv'); input.on('blur',function(e){ var xy=inpu

我必须使一个div正好出现在输入框旁边,但是这个div直接位于主体下方,而输入框位于许多div之下

所以这个场景是我有很多输入,我想显示这个div内容中的一些错误。我检查在blur上输入的内容,然后选择发生blur的任何输入,取这个输入框的位置,设置div的xy位置,然后取消隐藏它

守则:

var input=Y.one("#input1");
var errorDiv=Y.one('#errorDiv');

input.on('blur',function(e){
  var xy=input.getXY();
  errorDiv.setXY([xy[0]+30,xy[1]]);
  errorDiv.removeClass('hide');
});
我面临的问题是setXY第一次不工作。只有在我第二次改变焦距后,setXY才会放在正确的位置。 在调试过程中,我发现在这个语句
errorDiv.setXY([xy[0]+30,xy[1]])之后,错误div的xy位置仍然为0,0


有人能告诉我我做错了什么吗?

我相信您需要交换处理
errorDiv
外观的顺序。因此,与其先设置位置然后取消隐藏,不如尝试取消隐藏div,然后更改其位置

只需改变这一点:

这个。

  errorDiv.removeClass('hide');
  errorDiv.setXY([xy[0]+30,xy[1]]);
我已经创建了一个演示这种变化的程序


我以前遇到过这个问题,我不完全确定它为什么会发生,因为我没有深入研究它,但我的理论是,它与要求元素首先可见以进行适当的坐标计算有关。希望这有帮助。

我希望我不是唯一一个认为标题中提到性感功能的人……你不是唯一一个。
  errorDiv.removeClass('hide');
  errorDiv.setXY([xy[0]+30,xy[1]]);