jQuery EasyUI Arrastrar y Soltar -Crear un horario escolar

Este tutorial le mostrará cómo crear un horario escolar usando jQuery EasyUI. Crearemos dos tablas: en el lado izquierdo se muestran las materias escolares, en el lado derecho se muestra el horario. Puede arrastrar las materias escolares y soltarlas en las celdas del horario. Una materia escolar es un elemento `<div class="item">`, y una celda del horario es un elemento `<td class="drop">`.

Mostrar materias escolares

    <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>

Mostrar el horario

    <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>

Arrastrar las materias escolares en el lado izquierdo

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

Soltar las materias escolares en las celdas del horario

    $('.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
                });
            }
        }
    });

Como puede ver en el código anterior, cuando el usuario arrastra una materia escolar en el lado izquierdo y la suelta en una celda del horario, se llamará a la función de devolución de llamada `onDrop`. Clonamos el elemento de origen arrastrado desde la izquierda y lo adjuntamos a la celda del horario. Cuando se arrastra una materia escolar de una celda del horario a otra celda, simplemente se mueve.

Descargar ejemplos de jQuery EasyUI

jeasyui-dd-timetable.zip

Otras extensiones