jQuery EasyUI Перетаскивание -Создание школьного расписания

В этом руководстве будет показано, как использовать jQuery EasyUI для создания школьного расписания. Мы создадим две таблицы: слева отображаются школьные предметы, а справа — расписание. Вы можете перетаскивать школьные предметы и отпускать их в ячейки расписания. Школьный предмет — это элемент <div class="item">, а ячейка расписания — элемент <td class="drop">.

Отображение школьных предметов

    <div class="left">
        <table>
            <tr>
                <td><div class="item">English</div></td>
            </tr>
            <tr>
                <td><div class="item">Science</div></td>
            </tr>
            <!-- other subjects -->
        </table>
    </div>

Отображение расписания

    <div class="right">
        <table>
            <tr>
                <td class="blank"></td>
                <td class="title">Monday</td>
                <td class="title">Tuesday</td>
                <td class="title">Wednesday</td>
                <td class="title">Thursday</td>
                <td class="title">Friday</td>
            </tr>
            <tr>
                <td class="time">08:00</td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
                <td class="drop"></td>
            </tr>
            <!-- other cells -->
        </table>
    </div>

Перетащите школьные предметы слева

    $('.left .item').draggable({
        revert:true,
        proxy:'clone'
    });

Отпустите школьные предметы в ячейки расписания

    $('.right td.drop').droppable({
        onDragEnter:function(){
            $(this).addClass('over');
        },
        onDragLeave:function(){
            $(this).removeClass('over');
        },
        onDrop:function(e,source){
            $(this).removeClass('over');
            if ($(source).hasClass('assigned')){
                $(this).append(source);
            } else {
                var c = $(source).clone().addClass('assigned');
                $(this).empty().append(c);
                c.draggable({
                    revert:true
                });
            }
        }
    });

Как видно из кода выше, когда пользователь перетаскивает учебный предмет слева и отпускает его в ячейку расписания, будет вызвана callback-функция onDrop. Мы клонируем исходный элемент, перетащенный слева, и добавляем его в ячейку расписания. При перетаскивании учебного предмета из одной ячейки расписания в другую он просто перемещается.

Скачать примеры jQuery EasyUI

jeasyui-dd-timetable.zip

Другие расширения