Openlayers 设置DragFeature事件

Openlayers 设置DragFeature事件,openlayers,Openlayers,我有拖拽功能。如果我在构建拖动功能对象时设置了拖动事件,那么它工作得非常好: var dragFeature = new OpenLayers.Control.DragFeature(pointsLayer, { onStart:function (feature, pixel){ //Do stuf } , onComplete: function(f

我有拖拽功能。如果我在构建拖动功能对象时设置了拖动事件,那么它工作得非常好:

var dragFeature = new OpenLayers.Control.DragFeature(pointsLayer,
        {
            onStart:function (feature, pixel){
                //Do stuf
            }
            ,
            onComplete: function(feature, pixel){
                //Do stuff
            }
        });
问题是,我想在创建对象后更改这些事件,或者我想在完成时再做一点(因此我想要一个默认操作,并能够添加一个新操作)

我试过了

dragFeature.events.on(
        {   
            onComplete: function(feature){
            alert(feature);
            }
        }
);

但这是行不通的。有什么想法吗?

在JavaScript中,函数也是值,您可以简单地调用一个函数,该函数可以在需要时重新定义。伪代码:

onComplete: function(feature) {
  // Do common stuff
  // ...
  dragOnCompleteDoMore(feature);
  // Where dragOnCompleteDoMore has been changed before the drag was started depending on some criteria.
}

这就是我想要的:

dragFeature.onStart=function(){
}

德克萨斯州

这当然是一个解决方案,但实际上我正在寻找一种方法,在使用构造函数创建对象之后,在OpenLayers.Control.DragFeature上设置OnCommlete函数。然后重新分配函数,它是属性的一部分:这就是我要找的!其实很简单:)