JQuery UI - droppable ,转载

  1. ·概述
  2. 配合draggable插件,允许拖放到任何DOM元素内。
  3. 官方示例地址:http://jqueryui.com/demos/droppable/
  4. 所有的事件回调函数都有两个参数:event和ui,浏览器自有event对象,和经过封装的ui对象
  5. ui.draggable - 表示当前被拖拽的元素的JQuery对象
  6. ui.helper - 表示当前被拖放的元素的JQuery对象
  7. ui.position - 表示当前被拖拽的相对坐标值对象{top,left}
  8. ui.offset - 表示当前被拖拽的元素的绝对坐标值对象{top,left}
  9. ·参数(参数名 : 参数类型 : 默认值)
  10. accept : Selector, Function : '*'
  11. 仅允许符合适配器的元素激活拖放的事件。(如果是函数,则此函数会在页面上所有元素被调用,函数的返回值必须是布尔值。)
  12. 初始:$('.selector').droppable({ accept: '.special' });
  13. 获取:var accept = $('.selector').droppable('option', 'accept');
  14. 设置:$('.selector').droppable('option', 'accept', '.special');
  15. activeClass : String : false
  16. 如果设置值,则当有拖拽事件发生时,为页面上所有允许(accept)的元素添加此样式。
  17. 初始:$('.selector').droppable({ activeClass: 'ui-state-highlight' });
  18. 获取:var activeClass = $('.selector').droppable('option', 'activeClass');
  19. 设置:$('.selector').droppable('option', 'activeClass', 'ui-state-highlight');
  20. addClasses : Boolean : true
  21. 设置为false,可以阻止ui-droppable样式添加至可拖放的对象。(这样可以获取一定的性能优化)
  22. 初始:$('.selector').droppable({ addClasses: false });
  23. 获取:var addClasses = $('.selector').droppable('option', 'addClasses');
  24. 设置:$('.selector').droppable('option', 'addClasses', false);
  25. greedy : Boolean : false
  26. 是否防止嵌套的droppable事件被传播。
  27. 初始:$('.selector').droppable({ greedy: true });
  28. 获取:var greedy = $('.selector').droppable('option', 'greedy');
  29. 设置:$('.selector').droppable('option', 'greedy', true);
  30. hoverClass : String : false
  31. 当拖拽元素移至带有可拖放插件的元素上时,为元素添加指定的样式。
  32. 初始:$('.selector').droppable({ hoverClass: 'drophover' });
  33. 获取:var hoverClass = $('.selector').droppable('option', 'hoverClass');
  34. 设置:$('.selector').droppable('option', 'hoverClass', 'drophover');
  35. scope : String : 'default'
  36. 设置元素只允许具有相同scope值拖拽元素激活此拖放元素。
  37. 初始:$('.selector').droppable({ scope: 'tasks' });
  38. 获取:var scope = $('.selector').droppable('option', 'scope');
  39. 设置:$('.selector').droppable('option', 'scope', 'tasks');
  40. tolerance : String : 'intersect'
  41. 判断一个可拖拽元素被【放到】一个可拖放元素的判断模式。(可选值:'fit', 'intersect', 'pointer', 'touch')
  42. fit:拖拽元素完全覆盖拖放元素
  43. intersect:拖拽元素至少50%覆盖拖放元素
  44. pointer:鼠标指针重叠在可拖放元素上
  45. touch:只要有任何重叠即发生
  46. 初始:$('.selector').droppable({ tolerance: 'fit' });
  47. 获取:var tolerance = $('.selector').droppable('option', 'tolerance');
  48. 设置:$('.selector').droppable('option', 'tolerance', 'fit');
  49. ·事件
  50. activate
  51. 当任何可拖拽元素开始拖拽动作时激活此事件。
  52. 初始:$('.selector').droppable({ activate: function(event, ui) { ... } });
  53. 绑定:$('.selector').bind('dropactivate', function(event, ui) { ... });
  54. deactivate
  55. 当任何可拖拽元素停止拖拽动作时激活此事件。
  56. 初始:$('.selector').droppable({ deactivate: function(event, ui) { ... } });
  57. 绑定:$('.selector').bind('dropdeactivate', function(event, ui) { ... });
  58. over
  59. 当一个被允许(accept)的可拖拽元素移动并覆盖可拖放元素时激活。
  60. 初始:$('.selector').droppable({ over: function(event, ui) { ... } });
  61. 绑定:$('.selector').bind('dropover', function(event, ui) { ... });
  62. out
  63. 当一个被允许(accept)的可拖拽元素移出可拖放元素时激活。
  64. 初始:$('.selector').droppable({ out: function(event, ui) { ... } });
  65. 绑定:$('.selector').bind('dropout', function(event, ui) { ... });
  66. drop
  67. 当一个被允许(accept)的可拖拽元素移动并覆盖可拖放元素,松开鼠标时激活。
  68. 初始:$('.selector').droppable({ drop: function(event, ui) { ... } });
  69. 绑定:$('.selector').bind('drop', function(event, ui) { ... });
  70. ·方法
  71. destory
  72. 从元素中移除拖拽功能。
  73. 用法:.droppable( 'destroy' )
  74. disable
  75. 禁用元素的拖拽功能。
  76. 用法:.droppable( 'disable' )
  77. enable
  78. 启用元素的拖拽功能。
  79. 用法:.droppable( 'enable' )
  80. option
  81. 获取或设置元素的参数。
  82. 用法:.droppable( 'option' , optionName , [value] )