0

Crossrider を使用しています。ドラッグ可能な div をページの DOM に追加したいと考えています。
次のコードは Chrome と Firefox でうまく機能し、dragstop ハンドラ関数は Chrome と Firefox の両方で問題なく起動されます。
しかし、IE の場合、div は 1 回だけドラッグできます。つまり、div がドロップされると、再度ドラッグすることはできません。さらに奇妙なのは、IE で dragstop イベント ハンドラーがまったく起動されないことです!?

IEでこれを修正する方法!?

コードは次のとおりです。

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/

4

2 に答える 2

2

Crossrider を使用して同じ問題に遭遇し、ドラッグ可能な要素を返すハンドラー関数を宣言することで問題を解決できたので、コードは次のようになります。

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

それが役に立てば幸い...

于 2013-04-28T10:42:05.717 に答える
0

イベントはなくdragstopstopフックだけです(ドキュメントを参照):

次のように使用します。

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