点击时可以对jQuery UI进行排序

Hel*_*ire 0 javascript jquery-ui

我有jQuery UI排序功能正常工作,但我还想添加一个基本的单击操作,以使可拖动的项目更改<ul>.我<div class="click_area">拖着残疾人.我想要的是第一个,<ul>如果click_area被点击,那么sortable <li>将移动到第二个,<ul>就像我拖了它一样.如果在第二个点击click_area <ul>,它将被移动到第一个,同样的交易<ul>.我创建了一个用于测试的JS小提琴:http://jsfiddle.net/helpinspireme/wMnsa/

任何建议将不胜感激.谢谢.

mda*_*rwi 7

$("#unassigned_list, #recipients_list").sortable({
    connectWith: ".connected_sortable",
    items: "li",
    handle: ".draggable_area",
    stop: function(event, ui) {
        updateLi(ui.item);
    }
}).disableSelection().on("click", ".click_area", function() {
    // First figure out which list the clicked element is NOT in...
    var otherUL = $("#unassigned_list, #recipients_list").not($(this).closest("ul"));
    var li = $(this).closest("li");

    // Move the li to the other list. prependTo() can also be used instead of appendTo().
    li.detach().appendTo(otherUL);

    // Finally, switch the class on the li, and change the arrow's direction.
    updateLi(li);
});

function updateLi(li) {
    var clickArea = li.find(".click_area");
    if (li.closest("ul").is("#recipients_list")) {
        li.removeClass("ui-state-default").addClass("ui-state-highlight");
        clickArea.html('&#8592;');
    } else {
        li.removeClass("ui-state-highlight").addClass("ui-state-default");
        clickArea.html('&#8594;');
    }    
}
?
Run Code Online (Sandbox Code Playgroud)