JQuery Draggable + Sortable - Нажмите, чтобы добавить - PullRequest
1 голос
/ 07 сентября 2011

У меня есть сортируемый список jQuery, в который можно перетаскивать перетаскиваемые элементы списка.

Есть ли способ добавить элементы в сортируемый список, щелкая их (или отдельную кнопку) вместо перетаскивания,и запуск сортируемого события 'receive'?

1 Ответ

1 голос
/ 07 сентября 2011

Я не думаю, что есть встроенный способ вызвать это (предполагая, что триггер ('receive') будет трудным для работы), но вот способ, которым я бы пошел с этим:

Добавьте вызов функции addToList в перетаскиваемые элементы списка, затем создайте эту функцию.Настройте внутренние теги html / span по своему усмотрению.

function addToList(text,id){

var $list=$("ol#drop_zone");

item_html    += "<span>"+text+"</span>";
var $listItem = $("<li/>",{
id          : id,   
html        : item_html
});
$list.append($listItem);
//bind a removeItem function to the new list item
$listItem.find('span').bind('click',removeItem);
//make a call to receive_item function that does the same as receive event
receive_item(id);
}

создайте функцию элемента приема, которая используется в вашем событии отбрасывания и в вашем событии addToList:

function receiveItem(id){
    $.ajax({
        type: 'post',
        data: $('ol#drop_zone').sortable('serialize'), 
        dataType: 'script',
        complete: function(request){
            alert('received!');
        },
        url: 'my_url'})

}

tryэто для очистки дубликата кода - отредактируйте вашу функцию приема, используя вышеуказанную функцию:

$('ol#drop_zone').sortable({
  receive: function(ev, ui){
  id=ui.item.attr('id');    
  receiveItem(id);
  }
})
...