example.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 'use strict';
  2. var crossvent = require('crossvent');
  3. var sortable = $('sortable');
  4. dragula([$('left-defaults'), $('right-defaults')]);
  5. dragula([$('left-copy'), $('right-copy')], { copy: true });
  6. dragula([$('left-events'), $('right-events')])
  7. .on('drag', function (el) {
  8. el.className = el.className.replace('ex-moved', '');
  9. })
  10. .on('drop', function (el) {
  11. el.className += ' ex-moved';
  12. })
  13. .on('over', function (el, container) {
  14. container.className += ' ex-over';
  15. })
  16. .on('out', function (el, container) {
  17. container.className = container.className.replace('ex-over', '');
  18. });
  19. dragula([$('left-rollbacks'), $('right-rollbacks')], { revertOnSpill: true });
  20. dragula([$('left-lovehandles'), $('right-lovehandles')], {
  21. moves: function (el, container, handle) {
  22. return handle.classList.contains('handle');
  23. }
  24. });
  25. dragula([$('left-rm-spill'), $('right-rm-spill')], { removeOnSpill: true });
  26. dragula([$('left-copy-1tomany'), $('right-copy-1tomany')], {
  27. copy: function (el, source) {
  28. return source === $('left-copy-1tomany');
  29. },
  30. accepts: function (el, target) {
  31. return target !== $('left-copy-1tomany');
  32. }
  33. });
  34. dragula([sortable]);
  35. crossvent.add(sortable, 'click', clickHandler);
  36. function clickHandler (e) {
  37. var target = e.target;
  38. if (target === sortable) {
  39. return;
  40. }
  41. target.innerHTML += ' [click!]';
  42. setTimeout(function () {
  43. target.innerHTML = target.innerHTML.replace(/ \[click!\]/g, '');
  44. }, 500);
  45. }
  46. function $ (id) {
  47. return document.getElementById(id);
  48. }