jQuery Sortable - упорядоченный список - ошибка в IE9 - PullRequest
0 голосов
/ 08 февраля 2012

Я использую сортировку jQuery с 2 HTML-элементами упорядоченного списка.

При первой загрузке страницы первая ol связывается с повторителем для добавления элементов к ней.

Затем пользователь имеет возможность перетаскивать эти элементы во 2-й 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>

Это прекрасно работает в Google Chrome, но в Internet Explorer 9 числа всеотображение «1».Это можно исправить перетаскиванием любого элемента списка, но только при перетаскивании их в то же место, откуда их перетащили.

Вот пример того, как это выглядит в Internet Explorer 9 (пожалуйста, игнорируйте красныйхулиганы!).

enter image description here

Почему это происходит и что можно исправить, чтобы предотвратить это?

1 Ответ

0 голосов
/ 20 августа 2012

Такое поведение может быть вызвано ошибкой регрессии в 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>

... как указано в этом аналогичном посте с ответом, описывающим ошибку регрессии в IE9 .

...