JQuery UI Sortable + Toggle Проблема - PullRequest
4 голосов
/ 05 марта 2011

Я пытаюсь реализовать простой подключаемый сортировщик, чей display может быть переключен пользователем.

$('#toggle').click(function(){
    $('#content').toggle();
});

$('#target').sortable();
$('#source div').draggable({
    connectToSortable: '#target',
    helper: 'clone'
});

Я столкнулся с проблемой здесь. Если сортируемая (цель) свернута и выполняется операция перетаскивания, сортируемая перестает работать.

См. http://jsfiddle.net/9hGrs/12/

  1. Нажмите на кнопку переключения, чтобы скрыть сортируемую
  2. Перетащите любой элемент из источника в любое место на странице и отпустите его (т. Е. Это имитирует недопустимое падение)
  3. Снова нажмите кнопку переключения, чтобы отобразить сортируемую
  4. Теперь, когда вы пытаетесь перетащить элемент из источника в сортируемое, он не принимает перетаскиваемый объект.

Есть идеи, что я здесь делаю не так? Буду признателен за любую помощь. Спасибо!

Ответы [ 2 ]

5 голосов
/ 05 марта 2011

Вам необходимо использовать недопустимую опцию, а также отключать и включать цель, когда вы прячетесь:

$('#toggle').click(function(){
    if($('#content').is(":visible")) {
      $( "#target" ).sortable( "option", "disabled", true );
      $("#content").hide();
} else {
      $( "#target" ).sortable( "option", "disabled", false );
      $("#content").show();            
    }

});

$('#target').sortable();
$('#source div').draggable({
    connectToSortable: '#target',
    helper: 'clone',
    revert: 'invalid'
});

Модифицированный JSFiddle, показывающий эту работу .

2 голосов
/ 28 июля 2011

Эта проблема не возникает с jquery 1.6.1 / jquery-ui 1.8.14.

Обновленная скрипта: http://jsfiddle.net/9hGrs/16/

...