javascript - IE8 中奇怪的可拖动行为

标签 javascript jquery jquery-ui jquery-ui-draggable

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

http://jqueryui.com/draggable/

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

我在 IE8 中遇到一个问题,当我开始拖动被拖动的项目时,它会出现在不同的高度。

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

enter image description here

但是在 IE8 中,一旦我开始拖动,被拖动的项目就会出现在不同的高度。 注意蓝色鼠标图标绘制得很糟糕:

enter image description here

被拖动项目的高度偏移和鼠标指针位置取决于整个页面的当前滚动位置。因此,我向下滚动页面的次数越多,可拖动项相对于鼠标指针的显示就越高。

什么可能导致此行为?我无法使用小代码片段重新创建它。此行为发生在大型代码库中,这使得重新创建变得困难。

最佳答案

这对我有用。项目本身和被拖动的项目之间的偏移差异与页面的滚动量相同,因此我只需将滚动值添加到 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;
                  }
               }

关于javascript - IE8 中奇怪的可拖动行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25622662/

相关文章:

javascript - Bootstrap选项卡刷新页面

NodeJS 中的 Javascript URL 正则表达式问题

javascript - Textbox 类 Onchange 事件监听器不适用于多个类

jquery - 为什么jquery触发器点击不更新location.hash?

javascript - 将加载图标添加到 Knockout javascript

javascript - 如何将登录框打造成可重用的UI组件?

javascript - 发布在 Ajax 中无法将输入保存到数据库

Javascript map 取消引用

jquery - twitter-bootstrap 和 HighCharts 插件之间的冲突

javascript - 如何阻止按钮的后续点击事件?