0

我正在使用2排序列表HTML元素排序的jQuery。jQuery可排序 - 有序列表 - 在IE9中的錯誤

頁面第一次加載時,第一個ol被綁定到一箇中繼器以向其中添加項目。

然後用戶有能力將這些項目拖放到第二個ol

由於這是一個有序列表,一旦用戶已經「放下」了該項目,列表中的項目編號會自動變爲數字排序。

這裏是我的代碼片段:

<ol class="drop"> 
    <asp:Repeater ID="repQuestion1Answers" runat="server"> 
     <ItemTemplate> 
      <li answerid="<%#eval("ID") %>"><%#Eval("Answer")%></li> 
     </ItemTemplate> 
     </asp:Repeater> 
    </ol> 
    <ol class="drop selected"> 
    </ol> 

    <script type="text/javascript"> 
     $(function() { 
     $("div.options.question1 ol.drop").sortable({ 
      connectWith: "div.options.question1 ol.drop" 
     }); 

     $("div.options.question1 ol.drop.selected").sortable({ 
      connectWith: "div.options.question1 ol.drop" 
      , update: function (event, ui) { 
        var $items = $(this).find("li"); 
        var items = ""; 
        $items.each(function() { 
         items = items + $(this).attr("answerid") + ","; 
        }); 
        $(".txtQuestion1").val(items); 
       } 
      }); 

      $("div.options.question1 ol.drop").disableSelection(); 

    }); 
    </script> 

這個作品在谷歌瀏覽器不錯,但在Internet Explorer 9中的數字都顯示爲「1」。這可以通過拖放任何列表項來解決,但只有在將它們拖放到拖動它們的相同位置時才能解決。

下面是它在Internet Explorer 9中的外觀示例(請忽略紅色小波!)。

enter image description here

爲什麼會這樣,我可以把在什麼地方固定,以防止它?

回答

0

此行爲可能是由一個迴歸錯誤在Internet Explorer 9

可能的解決方法是將您的有序列表放到div元素,並添加之後的空div元素引起...

<div id="first"> 
    <ol class="drop"> 
     <asp:Repeater ID="repQuestion1Answers" runat="server"> 
      <ItemTemplate> 
       <li answerid="<%#eval("ID") %>"><%#Eval("Answer")%></li> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ol> 
</div> 

<div id="second"> 
    <ol class="drop selected"> 
    </ol> 
</div> 

<div id="empty"></div> 

...如similar post with an answer that describes a regression error in IE9所述。