2017-06-29 82 views
0

我想以编程方式触发选择事件,但我不知道如何。所以,这就是我选择创建互动:如何以编程方式触发选择事件

var selection = new ol.interaction.Select({ 
    ... 
}); 

selection.on('select', function (event) { 
    ... here is some action or event I want to trigger 
}); 

在我的代码另一部分,我把新的功能选择:

selection.getFeatures().push(new_feature); 

我想是触发select事件。我怎样才能做到这一点?

回答

2

不应该手动触发该事件。应该由交互本身来触发它。我会做的是听取不同类型的事件。

ol.interaction.Select有一个功能集合,即ol.Collection。当交互通过自己选择特征时,即通过自己的处理程序的结果,手动推送/移除的结果,该对象触发addremove事件。

这里有一个片段:

var featuresCollection = selection.getFeatures(); 
featuresCollection.on('add', function() { 
    // do what you want on add 
}); 
featuresCollection.on('remove', function() { 
    // do what you want on remove 
}); 

这将需要多一点点的管理,回调方法是火每个功能,但最终你就可以做你想做的事。

+0

谢谢!但似乎我设法用dispatchEvent方法触发事件。 – Jacobian

相关问题