拖动UL元素的直观方式

时间:2014-08-04 18:33:59

标签: javascript jquery jquery-ui

我希望能够反馈实现拖动我的UL元素的直观方式的好方法。我制作了一个小型JSFiddle,显示了我当前的实现。

$.each($('#area ul'), function(){
    $(this).mouseenter(
        function(){
            var ul_element = $(this);
            ul_element.prepend("<li id='movebar'>Move List</li>");
            $('#movebar').mouseenter(
                function(){
                    $(ul_element).draggable({
                        snap: true,
                        containment:"parent",
                        stop: function(event,ui){

                        }
                    });
                }).mouseleave(
                function(){
                    $(ul_element).draggable("destroy");
                });
                ul_element.sortable({
                    revert:true,
                    containment:"parent",
                    cancel:"#movebar",
                    stop: function(event,ui){

                    }
                 });
            });
    $(this).mouseleave(
        function(){
            $('#movebar').remove();
            $(this).sortable("destroy");
            console.log(false);
        });
});  

http://jsfiddle.net/D9yN4/2/

我也在寻找选择UL元素的更好解决方案。目前,我的查询选择特定div中的所有UL元素。有没有更好的方法来选择单个UL元素?

我的项目也有限制,我可能无法为UL元素提供唯一的ID。

感谢您的任何见解。

1 个答案:

答案 0 :(得分:0)

<head>
    <meta charset="utf-8">
    <title>jQuery UI Sortable - Default functionality</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css">
    <style>
        #sortable {
            list-style-type: none;
            margin: 0;
            padding: 0;
            width: 60%;
        }
        #sortable li {
            margin: 0 3px 3px 3px;
            padding: 0.4em;
            padding-left: 1.5em;
            font-size: 1.4em;
            height: 18px;
        }
        #sortable li span {
            position: absolute;
            margin-left: -1.3em;
        }
    </style>
    <script>
        $(function() {
            $("#sortable").sortable();
            $("#sortable").disableSelection();
        });
    </script>
</head>

<body>
    <ul id="sortable">
        <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
        <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
        <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
        <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
        <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
        <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>
        <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li>
    </ul>
</body>

尝试这个,它的可拖动列表的简单方法,然后你可以使用CSS代码进行样式设计。

相关问题