如何在拖放时更改光标旁边的元素?
问题描述:
我想将拖放功能合并到使用Google Closure库的应用程序中。具体来说,我现在用的是goog.fx.DragDropGroup
类:如何在拖放时更改光标旁边的元素?
http://closure-library.googlecode.com/svn/docs/class_goog_fx_DragDropGroup.html
现在,我想有该元素旁边我的光标比拖动源其他一些元素。我已经尝试在我的事件侦听器的回调函数中为dragstart
事件执行此操作。
myapp.Foo.prototype.dragStart_ =
function(e) {
var dElement = goog.dom.createElement('div');
dElement.innerHTML = 'This element is not a copy of the drag source element.';
e.dropTargetItem.element = dElement;
}
但是,直接更改放置目标项目的element
属性不起作用。实际上,它在拖放时不再使用拖动源元素的任何副本。
如何指定另一个元素作为使用鼠标拖动拖动源时出现的元素?我不希望这个元素与拖动源相同。
答
您可以创建一个继承自goog.fx.DragGroup的draggroup类 然后覆盖函数:createDragElement 您返回的元素将是鼠标指针后面的元素。
例子:
goog.provide('my.DragGroup');
goog.require('goog.fx.DragDropGroup')
/**
* @constructor
* @extends {goog.fx.DragDropGroup}
*/
my.DragGroup = function() {
goog.base(this);
};
goog.inherits(my.DragGroup, goog.fx.DragDropGroup);
/** @inheritDoc */
my.DragGroup.prototype.createDragElement = function(sourceEl) {
return goog.dom.createDom('div', null, 'Not a copy of the source El');
}
希望这有助于