2009-04-19 3 views
2

Это мой код для перетаскиваемого соединения, связанного с сортировкой. Дело в том, что я создаю LI с кучей атрибутов. НО, когда я перетаскиваю элемент в раскрывающийся div, сортируемый создает новый тег li и обматывает его созданный ли с ним.jQuery Sortable + Droppable. После сброса мой LI завернут в другой LI

Это выглядит примерно так:

<ul> 
<li class="ui-draggable" style="display: list-item;"> 
    <li class="X" onclick="myFunc()"> My LI</li> 
<li> 
</ul> 

Хотя мое намерение состоит в том, чтобы иметь что-то вроде этого:

<ul> 
    <li class="X" onclick="myFunc()"> My LI</li> 
</ul> 

Так как же я могу это сделать?

И код:

$(document).ready(function() { 

$('.draggable_text > li').draggable({ 
    helper: function(event, ui) { 
     return '<div class="placeholder_sortable">&nbsp</div>' 
    }, 
    connectToSortable:'#stagerows' 
}); 

$('#stagerows').sortable({ 
    handle: '.drag_handle', 
    placeholder: 'placeholder_sortable' 
}); 

/** 
* When item is dropped from the Add <Stuff> 
*/ 
$('#stagerows').droppable({ 
    drop: function(event, ui){ 
     return ui.draggable.html('<li class="X" onclick="myFunc()"> My LI</li>') 
    } 
}); 

}); 

ответ

3

Попробуйте использовать это:

$('#stagerows').droppable({ 
    drop: function(event, ui){ 
     return ui.draggable.html('My LI').addClass('X').click(myFunc); 
    } 
}); 
+0

благодаря tvanfosson. Но по внешнему виду кода мне пришлось бы удалить созданные мной теги li. return ui.draggable.html (createHTML()); // код выше, я явно добавил html, чтобы сделать его более читаемым. – wenbert