1

jquery-uiを使用してdivを整理し、変更をサーバーに保存しています。

そうするために、私は直接関係する2つのdivからいくつかの情報を読み、それらをajaxを介して別のページの投稿に送信します。

したがって、domを更新してドラッグした後、divのattr "pos"が移動し、その後divの属性を読み取るコードがあります。最初のものの属性「pos」が2番目のものの>である場合、それはこのスクリプトをトリガーします。

if (ui.item.attr('pos') > ui.item.next().attr('pos'))
        {
            $.ajax({
            type: "POST",
            url: "muovi.php",
            data: { in:ui.item.attr('ids'), pos1:ui.item.attr('pos'), out:ui.item.next().attr('ids'), pos2:ui.item.next().attr('pos')},
            success: function(response){

                $.ajax({
                  url: "",
                  context: document.body,
                  success: function(s,x){      ( -> Reload the page )
                  $(this).html(s);
                  }
                });

                $(".overlay").css("visibility","hidden"); (-> to understand if something went wrong)
                }
        });
    }

問題は、私がこれらのようなdivを持っている場合です:

[...]
<div class="game" pos="7" ids="something">
<div class="game" pos="8" ids="something else">
<div class="game" pos="9" ids="~">
<div class="game" pos="10" ids="~">
<div class="game" pos="11" ids="~">
[...]

位置1〜9のdivを位置1〜9のdivに移動しても、エラーは発生しません。位置10〜99のdivの場合と同じです。しかし、10-99divをdiv1-9に戻そうとすると、スクリプトが機能しないようです。

したがって、桁数が異なる場合、この問題が発生します。これは「pos」フィールドを編集しなくても解決できますか?問題は明らかですか?さらに情報を追加する必要がありますか?

4

1 に答える 1

1

との比較を実行する前に、文字列を数値に変換する必要がありますparseInt

if (parseInt(ui.item.attr('pos')) > parseInt(ui.item.next().attr('pos')))
于 2013-01-12T12:35:55.587 に答える