<body>
<table id= "timetable" width= "1100" border= "1" align= "center" >
<tbody><tr><th></th></tr></tbody>
</table>
<ul class = "programs" >
<li>Abs-30</li>
...
<li>Jazz</li>
</ul>
<ul class = "zals" >
<li> </li>
<li> </li>
</ul>
<ul class = "instructors" >
<li></li>
...
<li></li>
</ul>
</body>
* This source code was highlighted with Source Code Highlighter .
$( 'ul.instructors, ul.zals, ul.programs' ).draggable();
//
// draggable IE
// :
if (!$.browser.msie) {$( 'ul.instructors, ul.zals, ul.programs' ).draggable();}
$( "ul.programs li, ul.instructors li, ul.zals li" ).draggable({revert: 'invalid' , zIndex: 10});
//
// "revert: 'invalid'" ,
//
// droppable
// accept ( , )
$( "#timetable td" ).droppable({accept: "ul.programs li, ul.instructors li, ul.zals li" ,
hoverClass: "hover" , // CSS , ,
drop: function ( event , ui) { // ,
var class_to_find= '' ; // , .
if ($(ui.draggable).parent().hasClass( 'instructors' )) class_to_find= 'instructor' ;
if ($(ui.draggable).parent().hasClass( 'programs' )) class_to_find= 'program' ;
if ($(ui.draggable).parent().hasClass( 'zals' )) class_to_find= 'zal' ;
// ui.draggable - (li).
// .parent() - DOM , ul.
// ul , , .
// class_to_find
$( this ).find( 'div.' +class_to_find).html($(ui.draggable).text()).css( 'display' , 'none' ).fadeIn();
// $(this) - .
// :
//
// <div class="instructor"/>
// <div class="program"/>
// <div class="zal"/>
//
// div , class_to_find
// div`
// ui.draggable text()
//
// .css('display','none').fadeIn(); .
//
$(ui.draggable).css( 'top' , 'auto' ).css( 'left' , 'auto' );
// - , "+" .
if (($( this ).find( 'div.instructor' ).text()!= '' ) &&
($( this ).find( 'div.program' ).text()!= '' ) &&
($( this ).find( 'div.zal' ).text()!= '' ))
{$( this ).addClass( 'added' ); }
// , 'added'
}
});
* This source code was highlighted with Source Code Highlighter .
Source: https://habr.com/ru/post/94347/