unbind不会'不起作用
unbind doesn't work
为什么我无法在openlayers 3中解除事件绑定?我试着画一个互动的圆圈。对于取消绑定事件,我使用map.un('click',function(){ ... });
M.on('click',function(e){
if(!$pec.hasClass('active')) { deactive(true); return false;}
if( !isDrawing ){
isDrawing = true;
var center = e.coordinate;
var circle = new ol.geom.Circle([center[0],center[1]],10000,'XY');
var feature = new ol.Feature(circle);
var vectorSource = new ol.source.Vector();
vectorSource.addFeature(feature);
c = new ol.layer.Vector({
source: vectorSource
});
c.circle=circle;
M.addLayer(c);
$('body').css('cursor','crosshair');
}
else {
isDrawing = false;
deactive(false);
$('body').css('cursor','default');
finishDraw('circle',c);
}
});
M.on('pointermove',function(e){
if(isDrawing){
c.circle.setRadius(distanceTo(c.circle.getCenter(),e.coordinate));
}
});
function deactive(all){
M.un('click',function(){ log('deactive click');});
M.un('pointermove',function(){});
if(c && all) M.removeLayer(c);
isDrawing = false;
}
如何解决?我有更多这样的解绑,一切都不起作用
我认为这里发生的事情是,绑定事件的方法是匿名的。当您想要解除事件绑定时,必须将相同的方法作为引用发送。
尝试将函数声明为变量,然后在绑定和取消绑定操作中都使用它。类似于:
var myFunc = function(e) {};
M.on('click', myFunc);
M.un('click', myFunc)
此外,函数本身在无界时不会被调用。这就是为什么你的日志不起作用。
相关文章:
- 谷歌地图API-InfoBubble赢得't关闭-关闭()不会'不起作用
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- 我正在创建一个聊天,但每次我发送消息时,它都不会让我再发送另一条消息,就像表格一样;不起作用
- javascript函数,该函数不起作用,但不会显示任何错误
- Bootstrap下拉菜单不会'不起作用
- unbind不会'不起作用
- UIWebView中的点击事件不会'不起作用
- 变量不起作用(不知道为什么)javascript
- JavaScript id 选择器不起作用?不知道出了什么问题
- 模板网址不起作用 - 不发送请求
- 全日历日单击不起作用(不执行任何操作)
- 列表框选择“计数不起作用”不起作用
- 日期时间选择器不起作用.不明白怎么写JS
- jQuery 引导选项卡在自定义模式中不起作用(不是引导模式,而是我自己的版本)
- 原型扩展jQuery在Internet Explorer中不起作用 - “不支持”
- 功能点击不起作用...不显示警告框
- Javascript 打印不起作用 - 不打印整页
- 为什么我使用JavaScript的点导航不起作用.(不会跳转到页面上的部分)
- 静音iframe不起作用不是youtube iframe
- Ajax不起作用(不知道为什么)