|
674 | 674 | $nodeDiv.on('dragstart', function(event) { |
675 | 675 | event.originalEvent.dataTransfer.setData('text/html', 'hack for firefox'); |
676 | 676 | var $dragged = $(this); |
677 | | - var $draggedZone = $dragged.closest('table').find('.node'); |
| 677 | + var $dragZone = $dragged.closest('.nodes').siblings().eq(0).find('.node:first'); |
| 678 | + var $dragHier = $dragged.closest('table').find('.node'); |
678 | 679 | $dragged.closest('.orgchart') |
679 | 680 | .data('dragged', $dragged) |
680 | 681 | .find('.node').each(function(index, node) { |
681 | | - if ($draggedZone.index(node) === -1) { |
682 | | - $(node).addClass('allowedDrop'); |
| 682 | + if ($dragHier.index(node) === -1) { |
| 683 | + if (opts.dropCriteria) { |
| 684 | + if (opts.dropCriteria($dragged, $dragZone, $(node))) { |
| 685 | + $(node).addClass('allowedDrop'); |
| 686 | + } |
| 687 | + } else { |
| 688 | + $(node).addClass('allowedDrop'); |
| 689 | + } |
683 | 690 | } |
684 | 691 | }); |
685 | 692 | }) |
686 | 693 | .on('dragover', function(event) { |
687 | 694 | event.preventDefault(); |
688 | 695 | var $dropZone = $(this); |
689 | 696 | var $dragged = $dropZone.closest('.orgchart').data('dragged'); |
690 | | - if ($dragged.closest('table').find('.node').index($dropZone) > -1) { |
| 697 | + var $dragZone = $dragged.closest('.nodes').siblings().eq(0).find('.node:first'); |
| 698 | + if ($dragged.closest('table').find('.node').index($dropZone) > -1 || |
| 699 | + (opts.dropCriteria && !opts.dropCriteria($dragged, $dragZone, $dropZone))) { |
691 | 700 | event.originalEvent.dataTransfer.dropEffect = 'none'; |
692 | 701 | } |
693 | 702 | }) |
|
0 commit comments