0

我正在使用Crossrider,我想將一個可拖動的div添加到頁面的DOM中。
以下代碼適用於Chrome和Firefox,並且Chrome和Firefox的dragstop處理函數都可以毫無問題地被觸發。
但是對於IE來說,這個div可以拖動一次!即一旦div被放棄,它不能再被拖動,更奇怪的是dragstop事件處理程序在IE中根本沒有被觸發!爲什麼DIV在使用Crossrider&JQueryUI的IE中可以拖動一次? &沒有dragstop事件被解僱?

如何解決這個問題!

下面是代碼:

extension.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 ..."); 
    }); 
}); 

styles.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/

+0

順便說一句:你不能測試在IE8-小提琴,因爲的jsfiddle不會在這些瀏覽器。 – Simon 2013-03-14 16:21:43

回答

0

沒有dragstop事件,只是stop鉤(see the docs):

使用它like this

$div.draggable({ 
    containment: "window", 
    scroll: false, 
    stop: function() { 
     console.log("drag stopped ..."); 
    } 
}); 
+0

謝謝西蒙的回覆。但同樣的問題存在「停止」。問題不在於jQueryUI和IE。就像你在我的例子中看到的那樣,使用「dragstop」的代碼在IE頁面中運行良好,但在IE中的crossrider擴展中觸發時沒有。在IE上運行crossrider擴展時,「stop」存在同樣的問題。 – 2013-03-14 15:42:15

+1

那麼你提供的代碼在FF中並不適用於我(只是dragstop部分),所以我認爲這是一個普遍的問題。 – Simon 2013-03-14 16:15:54

2

我碰到了同樣的問題
您可以通過使用這個鏈接試試吧使用Crossrider並通過聲明返回可拖動元素的處理函數來解決問題,因此您的代碼應如下所示:

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

希望它可以幫助...