Изменения API данных JQuery 1.5, влияющие на пользовательский интерфейс JQuery - PullRequest
2 голосов
/ 09 февраля 2011

Я только что обновился до jQ 1.5 и jQUI 1.8.9, и мои сортируемые данные начали вести себя очень странно. У меня есть связанные сортируемые элементы, и когда я перетаскиваю элементы, они случайно кажутся остановленными, и это обычно кажется ненадежным. Есть ли какие-либо изменения, необходимые для обновления?

ОБНОВЛЕНИЕ - Получение ряда ошибок в js-файле JQuery UI

Невозможно прочитать свойство 'sortables' undefined в строке 1504 Невозможно прочитать параметры свойств undefined в строках 1585 и 1627 Не удается прочитать свойство 'element' из неопределенного в 1461

ОБНОВЛЕНИЕ - вот минимальный пример

Инструкции: перетащите предмет из красной коробки (перетаскиваемые) поверх первой голубой сортируемой коробки и во вторую синюю сортируемую коробку. Перетаскивание должно прекратиться при попытке навести указатель мыши на второй блок.

Кажется, что jquery ui не обязательно виноват, изменение ссылки на jquery на 1.4.4 решает проблему, поэтому я думаю, что это может быть проблемой в самом jquery, особенно с некоторыми изменениями в API данных.

<!DOCTYPE HTML>
<html>
<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
    <link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/dark-hive/jquery-ui.css" rel="Stylesheet" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.js"></script>

    <script type="text/javascript">
        $(function () {
            $('.sortable').sortable({ connectWith: '.sortable' }).disableSelection();   
            $('.draggable>div').draggable({ connectToSortable: '.sortable' });
        });
    </script>
</head>
<body>
    <style>     
        .draggable { border: 1px solid red; margin-bottom: 15px; width: 50%; padding: 5px;}
        .sortable  { border: 1px solid blue; margin-bottom: 15px; width: 50%; padding: 5px;}
    </style>

    <div id="draggers" class="draggable">
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Drag 1</div>
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Drag 2</div>
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Drag 3</div>        
    </div>

    <div id="sortable" class="sortable">
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Sort 1</div>
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Sort 2</div>
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Sort 3</div>        
    </div>

    <div id="sortable2" class="sortable">
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Sort 4</div>
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Sort 5</div>
        <div class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Sort 6</div>        
    </div>

</body>

1 Ответ

4 голосов
/ 10 февраля 2011

Кажется, что jquery 1.5 и jquery 1.8.9 не поддерживаются вместе. В этом случае метод .clone в 1.5 клонирует события, которых он не делал раньше, и исправление готово к 1.5.1 jquery ticket

...