Javascript IE8中奇怪的拖拉行为

Javascript IE8中奇怪的拖拉行为,javascript,jquery,jquery-ui,jquery-ui-draggable,Javascript,Jquery,Jquery Ui,Jquery Ui Draggable,对于jqueryui上列出的默认可拖动项: 什么决定了当前项目被拖动的位置 我在IE8中遇到了一个问题,当我开始拖动时,被拖动的项目显示在不同的高度 以下是正常行为,鼠标图标以蓝色绘制,以显示拖动项目时项目的正确位置: 但在IE8中,当我开始拖动时,被拖动的项目显示在不同的高度。 请注意,蓝色的鼠标图标绘制不正确: 正在拖动的项目的高度偏移和鼠标指针位置取决于整个页面的当前滚动位置。因此,我越是向下滚动页面,拖动的对象相对于鼠标指针的位置就越高 是什么导致了这种行为?我无法使用小代码段重新

对于jqueryui上列出的默认可拖动项:

什么决定了当前项目被拖动的位置

我在IE8中遇到了一个问题,当我开始拖动时,被拖动的项目显示在不同的高度

以下是正常行为,鼠标图标以蓝色绘制,以显示拖动项目时项目的正确位置:

但在IE8中,当我开始拖动时,被拖动的项目显示在不同的高度。 请注意,蓝色的鼠标图标绘制不正确:

正在拖动的项目的高度偏移和鼠标指针位置取决于整个页面的当前滚动位置。因此,我越是向下滚动页面,拖动的对象相对于鼠标指针的位置就越高


是什么导致了这种行为?我无法使用小代码段重新创建它。这种行为发生在大型代码库中,因此很难重新创建

这就是我的工作。项目本身和正在拖动的项目之间的偏移量差异与页面的滚动量相同,因此我只将滚动值添加到ui.position.top:

函数
msieversion
返回internet explorer版本

drag: function(event,ui){

                  /**
                  * This issue just occurs on IE8
                  * issue : if page has been scrolled down any item which is dragged appears
                  * at a different position than item dragged
                  **/
                  if((msieversion() <= 8.0) && (document.documentElement.scrollTop > 0)){
                      ui.position.top += document.documentElement.scrollTop;
                  }
               }
拖动:函数(事件、ui){
/**
*这个问题只发生在IE8上
*问题:如果页面已向下滚动,则会出现任何拖动的项目
*位于与拖动的项目不同的位置
**/
如果((msieversion()0)){
ui.position.top+=document.documentElement.scrollTop;
}
}
而不是
if((msieversion()0))
尝试
if(/*@cc_on!*/false&&&/*@cc_on@_jscript_version==5.8&&*/(document.documentElement.scrollTop>0))
,这可能更可靠。文档: