0

我正在使用 Crossrider,我想向页面的 DOM 添加一个可拖动的 div。
以下代码在 Chrome 和 Firefox 上运行良好,并且为 Chrome 和 Firefox 触发了 dragstop 处理函数,没有任何问题。
但是对于 IE,div 是可以拖动一次的!ie div一旦放下就不能再拖动了,更奇怪的是在IE中根本没有触发dragstop事件处理程序!?

如何在 IE 中解决这个问题!?

这是代码:

扩展名.js 文件

appAPI.ready(function(jQuery) {              
    appAPI.resources.jQueryUI('1.10.1'); 
    appAPI.resources.includeCSS('styles.css');
    var $div = jQuery('<div class="square" ></div>').appendTo('body');
    $div.draggable( {containment: "window", scroll: false} );
    $div.bind('dragstop', function() {
        console.log("drag stopped ..."); 
    }); 
});

样式.css 文件

.square {
    display:block; 
    z-index: 1000001; 
    background-color: #000000; 
    height: 100px; 
    width: 100px;
    top: 0px;
    left: 0px;
    position: fixed;
}

请注意,我尝试了没有 crossrider 的代码并在 IE 上运行它,它运行良好。
您可以使用此链接进行尝试:http: //jsfiddle.net/GHaMV/

4

2 回答 2

2

我在使用 Crossrider 时遇到了同样的问题,并通过声明一个返回可拖动元素的处理函数来解决该问题,因此您的代码应如下所示:

$div.draggable({
      containment: window,
      helper: function() {
          return $div;
      }
});

希望能帮助到你...

于 2013-04-28T10:42:05.717 回答
0

没有dragstop事件,只有stop钩子(请参阅文档):

像这样使用它:

$div.draggable({
    containment: "window",
    scroll: false,
    stop: function() {
        console.log("drag stopped ..."); 
    }
});
于 2013-03-14T15:28:26.957 回答