drag-drop.html 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Organization Chart Plugin</title>
  6. <link rel="icon" href="img/logo.png">
  7. <link rel="stylesheet" href="css/font-awesome.min.css">
  8. <link rel="stylesheet" href="css/jquery.orgchart.css">
  9. <link rel="stylesheet" href="css/style.css">
  10. <style type="text/css">
  11. #chart-container { height: 600px; border: 2px solid #aaa; }
  12. .orgchart { background: #fff; }
  13. </style>
  14. </head>
  15. <body>
  16. <div id="chart-container"></div>
  17. <script type="text/javascript" src="js/jquery.min.js"></script>
  18. <script type="text/javascript" src="js/jquery.orgchart.js"></script>
  19. <script type="text/javascript">
  20. $(function() {
  21. var datascource = {
  22. 'name': 'Lao Lao',
  23. 'title': 'general manager',
  24. 'children': [
  25. { 'name': 'Bo Miao', 'title': 'department manager',
  26. 'children': [{ 'name': 'Li Xin', 'title': 'senior engineer' }]
  27. },
  28. { 'name': 'Su Miao', 'title': 'department manager',
  29. 'children': [
  30. { 'name': 'Tie Hua', 'title': 'senior engineer' },
  31. { 'name': 'Hei Hei', 'title': 'senior engineer',
  32. 'children': [
  33. { 'name': 'Pang Pang', 'title': 'engineer' },
  34. { 'name': 'Dan Dan', 'title': 'UE engineer' }
  35. ]
  36. }
  37. ]
  38. },
  39. { 'name': 'Hong Miao', 'title': 'department manager' }
  40. ]
  41. };
  42. var oc = $('#chart-container').orgchart({
  43. 'data' : datascource,
  44. 'nodeContent': 'title',
  45. 'draggable': true,
  46. 'dropCriteria': function($draggedNode, $dragZone, $dropZone) {
  47. if($draggedNode.find('.content').text().indexOf('manager') > -1 && $dropZone.find('.content').text().indexOf('engineer') > -1) {
  48. return false;
  49. }
  50. return true;
  51. }
  52. });
  53. oc.$chart.on('nodedrop.orgchart', function(event, extraParams) {
  54. console.log('draggedNode:' + extraParams.draggedNode.children('.title').text()
  55. + ', dragZone:' + extraParams.dragZone.children('.title').text()
  56. + ', dropZone:' + extraParams.dropZone.children('.title').text()
  57. );
  58. });
  59. });
  60. </script>
  61. </body>
  62. </html>