2013-11-21 2 views
2

Мне интересно, может ли кто-нибудь помочь мне с этой проблемой jquery draggable sortable? У меня есть некоторые татуировки, которые связаны с некоторыми сортируемыми списками. Когда перетаскиваемый помощник находится над сортируемым, и сортируемый заполнитель является видимым, я хотел бы, чтобы ширина перетаскиваемого помощника менялась (идеально), чтобы быть правильной шириной сортируемой области. Теперь высота может оставаться неизменной. Я просто хочу, чтобы перетасованная ширина помощника соответствовала ширине сортировки.Draggable/Sortable helper size

JSBin файл пример (http://jsbin.com/oHeGexa/5/edit). Так что скажем, я перетаскиваю зеленый квадрат, который имеет ширину и высоту 40 пикселей при поднятии. Когда он перемещается по первой сортируемой области (которая составляет 150 пикселей), зеленый квадрат достигает ширины 150 пикселей. Когда он перемещается по 2-й сортируемой области, он снова изменяется на 250 пикселей, что соответствует размеру сортировки и сохраняет размер при перемещении по областям.

Я не могу работать, потому что я не знаю, как получить доступ к перетаскиваемому помощнику из метода сортировки по сравнению.

Я тоже не могу найти ответ на Google. Может кто-то указать мне верное направление.

+0

Вы хотите изменить ширину, когда она зависает над сортировкой или когда она отбрасывается? – Manish

+0

если есть. Я знаю, как добраться до него. – azzy81

ответ

3

Вот пример.

$(".dragMe").draggable({ 
    cursor: "crosshair", 
    connectToSortable: ".sortMe", 
    helper: "clone" 
}); 

$(".sortMe").sortable({ 
    connectWith: "", 
    forcePlaceholderSize: true, 
    over: function(e, ui){ 
     ui.helper.width(ui.sender.width()-10); 
     ui.item.width(ui.sender.width()-10); 
    } 
}); 

http://jsbin.com/oHeGexa/7/edit

Вы заметите, что когда-то перетаскиваемым входит


мне пришлось внести некоторые изменения в свой исходный код, чтобы заставить его работать, потому что.

При установке connectWith:".sortMe" функция over не срабатывает при первоначальном зависании над сортируемыми. Только после того, как один квадрат отбрасывается в сортируемое значение, вызывается функция over. Дальнейшее усложнение заключается в том, что объект UI отличается в зависимости от того, вызывается ли over от draggables или sortables.

При перетаскивании из сортировщиков ui.sender.width() не изменяется при наведении указателя мыши на различные сортируемые.

В любом случае, это начало. Излишне говорить, хотите ли вы, чтобы он работал, чтобы вы могли перетаскивать блоки в другие сортировки и иметь размер повторно, как только блок уже находится в области, способной к сортировке, которая будет работать больше. Я посмотрю на это немного больше, но это было нелегко понять.

+0

Попытка, но чрезвычайно багги .. http://jsbin.com/oHeGexa/8/edit Я не знаю – Trevor

+1

, прежде чем я даже попробую это с моим реальным кодом. Я просто хочу поблагодарить вас =) Мне нравятся ваши демоверсии и я может ясно видеть, как вы это сделали. Возможно, ваш код помог мне с чем-то другим, сделав это непреднамеренно. Я дам вам знать, как я скоро поеду, спасибо еще раз. – azzy81

+0

@SubstanceD приветствуется, пожалуйста, отметьте этот ответ как принятый, если он помог ответить на ваш вопрос. Спасибо – Trevor

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