1

私はこのスクリプトを持っています。さて、私は兵士がハイライトされたボックスだけに落とされることを望みました。$(selector)を受け入れて元に戻す: "invalid"を試しましたが、強調表示されていないボックスでもドロップできないようです。

4

1 に答える 1

0

最初にすべてのドロップ可能ファイルを無効にし、次にドラッグ開始ルーチン中にドロップ可能にし、ドラッグ可能にオプションを$('.cell .validmove')追加しrevert: "invalid"て、有効なセルに配置されていないときに戻るようにします。ちなみに、移動するとイベントが継続的に発生するため、drag()イベントでのルーチンを下に置いstart()て元に戻す方がよいでしょう。stop()drag()

unit.draggable({
    start: function() {
        startGrid.addClass("validmove").droppable("option", "disabled", false);
    },
    stop: function() {
        startGrid.removeClass("validmove").droppable("option", "disabled", true);
    },
    cursor: "move",
    revert: "invalid"
});

ユニットをグリッドにスナップする場合は、のグリッド/スナップオプションを使用するように指示するdraggable()か、イベントにコードを追加してdrop()、ユニットを所定の位置にアニメーション化します。

NB。CSSがChromeで正しく機能せず、グリッドが表示されず、Firefoxで正常に機能します。

于 2010-11-21T14:55:45.600 に答える