2012-07-31 59 views
2

我想將拖放功能合併到使用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屬性不起作用。實際上,它在拖放時不再使用拖動源元素的任何副本。

如何指定另一個元素作爲使用鼠標拖動拖動源時出現的元素?我不希望這個元素與拖動源相同。

回答

0

您可以創建一個繼承自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'); 
} 

希望這有助於