如何从fabricjs画布中删除事件监听器 [英] how to remove event listener from fabricjs canvas

查看:1226
本文介绍了如何从fabricjs画布中删除事件监听器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用fabricjs在html5中构建交互式地图.

I am using fabricjs to build an interactive map in html5.

当DOM加载时,我通过以下方式将鼠标悬停侦听器添加到我的fabricjs画布实例中:* my_event_setter( true )*.

When the DOM loads, I add my mouseover listener to my fabricjs canvas instance by calling: *my_event_setter( true )*.

然后为了测试,我想通过调用以下命令来删除监听器:第一次myover_setter( false )*.因此,这应该删除mouseover侦听器,但不能删除.

Then for the sake of testing, I want to remove the listener once I do my first mouseover by calling: *my_event_setter( false )*. That should thus remove the mouseover listener, but it does not.

my_event_setter = function( toggle )
  { var lvo =  { 'object:over' : function(e){ mouseover_handler( e ) } } ;
    toggle ? my_fabric_canvas.on( lvo ) : my_fabric_canvas.off( lvo ) ;
  } 
mouseover_handler = function( e )
  { my_event_setter( false ) ;
  } 

推荐答案

我使用以下方法解决了此问题:

I solved this by using:

var canvas = fabric.Canvas.activeInstance;
canvas.__eventListeners["mouse:down"] = [];

事件位于数组中,因此可以轻松处理这些事件.

The events are in an Array so it makes it easy to handle these.

这篇关于如何从fabricjs画布中删除事件监听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆