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