1

我正在使用 jquery-ui 来组织 div 并将更改保存回服务器上。

为此,我从直接涉及的 2 个 div 中读取了一些信息,并通过 ajax 将它们发送到另一个页面中。

所以,我有一个代码,在拖动 dom 更新后,div 的属性“pos”被移动,div 的属性在它之后。如果第一个的 attr "pos" 是第二个的 >,它会触发这个脚本。

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-99 的 div 移回 1-9 的 div 上,脚本似乎不起作用。

所以,如果有不同的位数,我就有这个问题。这是否可以在不编辑“pos”字段的情况下解决?问题清楚了吗?我应该添加更多信息吗?

4

1 回答 1

1

在执行与以下的比较之前,您需要将字符串转换为数字parseInt

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