2014-01-04 2 views
0

это скрипт я использую:JQuery UI Draggable, Сортируемый - Disallow перетащив элемент

$(".nav .row").draggable({ 
    connectToSortable: ".demo", 
    helper: "clone", 
    handle: ".drag", 
    drag: function (e, t) { 
     t.helper.width(400) 
    }, 
    stop: function (e, t) { 
     $(".demo .column").sortable({ 
      opacity: .35, 
      connectWith: ".column" 
     }) 
    } 
}); 

В основном то, что он делает то, что она позволяет перетащить новые строки и позволяет перетаскивание элементов внутри столбцов внутри этих строк.

Вот пример вывода:

<div class='demo'> 
    <div class='row'> 
      <div class='column'> 
      </div> 
    </div> 
</div> 

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

<div class='demo'> 
    <div class='row'> 
      <div class='column'> 
       <div class='row'> 
        <div class='column'> 
        </div> 
       </div> 
      </div> 
    </div> 
</div> 

Может ли кто-нибудь дать мне несколько советов, как я мог бы предотвратить это?

+0

Можете ли вы создать скрипку? То, что вам в основном нужно сделать, это определить, что такое droppable (по классу, если вы хотите), и когда что-то перемещается туда, где его в конце строки снимает класс droppable –

ответ

0

Это происходит потому, что $(".nav .row") выбирает все элементы с классом .row внутри контейнера nav. Вы можете добавить другое имя класса для целевых определенных строк, например:

<div class='demo'> 
    <div class='row dragabble'> 
      <div class='column'> 
      </div> 
    </div> 
</div> 

$(".nav .draggable").draggable({ 
    connectToSortable: ".demo", 
    helper: "clone", 
    handle: ".drag", 
    drag: function (e, t) { 
     t.helper.width(400) 
    }, 
    stop: function (e, t) { 
     $(".demo .column").sortable({ 
      opacity: .35, 
      connectWith: ".column" 
     }) 
    } 
}); 
+0

. Дело в том, что имеется не только одна строка, есть неограниченное количество доступных строк, и в идеале они будут все под .demo не внутри .column. Поэтому добавление класса не помогло бы мне здесь. – Kenn

+0

Вы можете применить класс «перетаскиваемый» к неограниченному количеству строк, которые будут нацелены только на эти строки и пропустить те, у кого нет «перетаскиваемого» класса. Если вы хотите настроить таргетинг на строки в столбце «column», измените селектор jQuery на «$ («. Column .draggable »)». HTML будет выглядеть так: '

' – Tomas

+0

Как объясняется проблема «Проблема в том, что она позволяет перетаскивать другую строку внутри этого класса столбца, я хочу, чтобы это не происходило, вот что происходит:« Томас прав. – user2509485

Смежные вопросы