instructor-drag.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. console.info("drag");
  2. window.dragItem;
  3. // 为Div添加ondragstart事件
  4. function addDivDragStart() {
  5. if ($(".remove").length == 0) {
  6. var div = document.createElement("div");
  7. div.className = "remove";
  8. // div.style.display = "none";
  9. $('#outCont').parent().append(div); // $('#displayArea').。Lin
  10. // var ofs = $('#displayArea').offset();
  11. var width = $('#outCont').height(); // = $('#displayArea').。Lin
  12. var ofs = {};
  13. ofs.position = "absolute";
  14. ofs.bottom = "0";
  15. ofs.display = "none";
  16. ofs.left = -50 + "px";
  17. ofs.width = width + 'px';
  18. ofs.height = width + "px";
  19. ofs.zIndex = 9999;
  20. $(div).css(ofs);
  21. console.log(div)
  22. }
  23. $('.item').off("dragstart").on('dragstart', function (ev) {
  24. window.dragItem = ev.target;
  25. });
  26. $('.item').off("drop").on('drop', function (ev) {
  27. if (window.dragItem)
  28. if ($(ev.target).index() > $(window.dragItem).index()) {
  29. ev.target.parentNode.insertBefore(window.dragItem, ev.target.nextSibling);
  30. } else {
  31. ev.target.parentNode.insertBefore(window.dragItem, ev.target);
  32. }
  33. window.dragItem = null;
  34. ev.preventDefault();
  35. });
  36. dragPreventEvent();
  37. }
  38. function dragover(ev) {
  39. // $(".remove").show();
  40. ev.preventDefault();
  41. }
  42. function drop(ev) {
  43. ev.preventDefault();
  44. $(".remove").hide();
  45. if (window.dragItem)
  46. window.dragItem.parentNode.removeChild(window.dragItem);
  47. // 把光标移到最后
  48. // changeClassName();
  49. }
  50. function dragPreventEvent() {
  51. $(top.document.body).off("dragover").on('dragover', dragover);
  52. $(top.document.body).off("drop").on('drop', drop);
  53. // 为displayArea添加拖拽事件,用来防止事件冒泡
  54. $('#outCont,.editor').off("dragover").on('dragover', function (ev) { // $('#displayArea,.editor').。Lin
  55. ev.preventDefault();
  56. return false;
  57. });
  58. $('#outCont,.editor').off("drop").on('drop', function (ev) { // $('#displayArea,.editor').。Lin
  59. ev.preventDefault();
  60. return false;
  61. });
  62. (function addDropEvents() {
  63. /* 改,抛出错误 arguments[0].$ is not a function。Lin
  64. * 先去掉递归调用,其他的直接用 window(第一次调用的入口参数) -- 不会改 arguments[0].$(
  65. * 因抛出错误,导致第一个写的写字板里的字迹不会清空
  66. * 另,完全不改的话,也不影响 拖放手写字 的操作
  67. arguments[0].$("body").off("dragover").on('dragover', dragover);
  68. arguments[0].$("body").off("drop").on('drop', drop);
  69. arguments[0].$("iframe[haveDropEvents!=1]").attr("haveDropEvents","1").each(function () {
  70. addDropEvents(this.contentWindow.window);
  71. });
  72. */
  73. window.$("body").off("dragover").on('dragover', dragover);
  74. window.$("body").off("drop").on('drop', drop);
  75. })(window)
  76. window.addEventListener("unload", function () {
  77. $(top.document.body).off("dragover");
  78. $(top.document.body).off("drop");
  79. });
  80. }