Jquery nestedSortable блокирует перетаскивание элемента на верхний уровень - PullRequest
2 голосов
/ 14 ноября 2011

У меня две проблемы,

  1. Этот nestedSortable не работает в этом коде, где проблема?

  2. Я хочу заблокировать пользователя для перетаскивания подэлемента на верхний уровень (базовый уровень), я знаю, что библиотека не позволяет этого, есть ли твик?

Вот весь мой код:

 <html>
     <head>
        <style>
            html {
            background-color: #eee;
            }

            body {
            color: #333;
            background-color: #fff;
            font-size: 13px;
            font-family: "Helvetica Neue", Corbel, "Nimbus Sans L", Helvetica, Arial, sans-serif;
            padding: 2em 4em;
            width: 860px;
            margin: 0 auto;
            }

            pre, code {
            font-size: 12px;
            }

            pre {
            width: 100%;
            overflow: auto;
            }

            small {
            font-size: 90%;
            }

            small code {
            font-size: 11px;
            }

            .placeholder {
            background-color: #cfcfcf;
            }

            .ui-nestedSortable-error {
            background:#fbe3e4;
            color:#8a1f11;
            }

            ul{
            margin: 0;
            padding: 0;
            padding-left: 30px;
            }

            ul.sortable, ul.sortable ul{
            margin: 0 0 0 25px;
            padding: 0;
            list-style-type: none;
            }

            ul.sortable {
            margin: 4em 0;
            }

            .sortable li {
            margin: 7px 0 0 0;
            padding: 0;
            }

            .sortable li div {
            border: 1px solid black;
            padding: 3px;
            margin: 0;
            cursor: move;
            }

            h1 {
            font-size: 2em;
            margin-bottom: 0;
             }

             h2 {
             font-size: 1.2em;
             font-weight: normal;
             font-style: italic;
             margin-top: .2em;
             margin-bottom: 1.5em;
             }

             h3 {
             font-size: 1em;
             margin: 1em 0 .3em;;
             }

             p, ol, ul, pre, form {
             margin-top: 0;
             margin-bottom: 1em;
             }

             dl {
             margin: 0;
             }

             dd {
             margin: 0;
             padding: 0 0 0 1.5em;
             }

             code {
             background: #e5e5e5;
             }

             input {
             vertical-align: text-bottom;
             }

             .notice {
             color: #c33;
             }


        </style>
        <script  src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js' type='text/javascript'/>
        <script  src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.js' type='text/javascript'/>
        <script  src='http://mjsarfatti.com/sandbox/nestedSortable/jquery.ui.nestedSortable.js' type='text/javascript'/>
        <script type='text/javascript'>
                 $(document).ready(function(){

                     $('ul.sortable').nestedSortable({             
                         disableNesting: 'no-nest',
                               forcePlaceholderSize: true,
                                handle: 'div',
                                helper:    'clone',
                               items: 'li',
                                maxLevels: 3,
                                opacity: .6,
                                placeholder: 'placeholder',
                                revert: 250,
                                tabSize: 25,
                                tolerance: 'pointer',
                                toleranceElement: '> div'
                     }); });


        </script>
    </head>
    <body>

        <ul class="sortable">         
             <li id="list_1"><div>Item 1</div> </li>
             <li id="list_2"><div>Item 2</div> </li>
                    <ul>
                       <li id="list_3"><div>Sub Item 2.1</div> </li>
                        <li id="list_4"><div>Sub Item 2.2</div> </li>
                       <li id="list_5"><div>Sub Item 2.3</div> </li>
                        <li id="list_6"><div>Sub Item 2.4</div> </li>
                    </ul>
                <li id="list_7" class="no-nest"><div>Item 3 (no-nesting)</div> </li>
                <li id="list_8" class="no-nest"><div>Item 4 (no-nesting)</div> </li>
                <li id="list_9"><div>Item 5</div> </li>
                <li id="list_10"><div>Item 6</div> </li>
                    <ul>
                        <li id="list_11"><div>Sub Item 6.1</div> </li>
                        <li id="list_12" class="no-nest"><div>Sub Item 6.2 (no-nesting)</div> </li>
                        <li id="list_13"><div>Sub Item 6.3</div> </li>
                       <li id="list_14"><div>Sub Item 6.4</div> </li>
                    </ul>        <li id="list_15"><div>Item 7</div> </li>
                <li id="list_16"><div>Item 8</div> </li>
            </ul>
    </body>
</html>

Спасибо!:)

РЕДАКТИРОВАТЬ: вот рабочий пример http://mjsarfatti.com/sandbox/nestedSortable/ Если бы я мог только получить эту работу, возможно, я мог бы искать больше для моей второй точки

РЕДАКТИРОВАТЬ 2: I'mVeизменил библиотеку, как сказал один из ответов, но Firefox зависает, и там не отвечает сценарий

Вот скрипка: http://jsfiddle.net/dAwEe/2/

РЕДАКТИРОВАТЬ 3: У кого-то есть идея?

РЕДАКТИРОВАТЬ 4: http://jsfiddle.net/dAwEe/3/ Я исправил свою проблему один: вложенные сортируемые js не очень хорошо включают: S

Теперь у кого-то есть идея для проблемы два?

Ответы [ 4 ]

1 голос
/ 20 октября 2013

Проблема вторая:

isAllowed может использоваться для включения или блокировки позиции.Чтобы заблокировать корневую позицию, вы можете использовать такие коды:

        isAllowed: function (item, parent) {
            if (parent == null) { //Parent == null means the root.
                return false;
            }
        }

см. Дополнительную информацию здесь: NestedSortable: isAllowed () не работает, когда используется connectWith ()

1 голос
/ 15 ноября 2011

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

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js' type='text/javascript'/>

должно быть

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js' type='text/javascript'></script>
1 голос
/ 25 ноября 2011

Я немного изменил код с помощью $.extend() и думаю, что подошел довольно близко -> http://jsfiddle.net/Galled/dAwEe/85/

1 голос
/ 15 ноября 2011

с сайта плагина:

Требуется:

jQuery 1.4 +

jQuery UI Sortable 1.8 +

...