2011-08-14 8 views

答えて

3

stopイベントは、revertオプションの変更が現在のドラッグ操作に影響を与えるには遅すぎます。ドラグ可能なオブジェクトは、たとえ次のドラッグでもそれ以上動作しなくても、元に戻ります。

あなたが代わりにdragイベントにバインドする場合があります

$('.things').draggable({ 
    revert: true, 
    drag: function(event, ui) { 
     if (/* something */) { 
      $(this).draggable("option", "revert", false); 
     } 
    } 
}); 
+0

これは機能しますが、私はドラッグに大きな処理をつけたくないので、IEや古いFFではそれをかなり遅くします。それを取り付けるドラッグのライフサイクルには何か他のものがあります。 – Smickie

+0

悲しいかな、私の知識には何もありません。あなたは、何かを決定するために実行している重い処理についてもっと詳しく説明できますか?たぶんあなたが達成したいことをするためのより良い方法があります。 –

2

私はこの質問を頼まれたので、これはしばらくあったが、1.10 jQueryのUIにしてdraggable上には、今の値としての機能をサポートして実現revertです。値がtrueを返した場合は、位置が元に戻されます。

$('.things').draggable({ 
    revert: function() { 
     if(condition_is_met()) { 
      return false; // Don't revert 
     } else { 
      return true; 
     } 
    } 
}); 
関連する問題