【问题标题】:RemoveHandler in OpenSeadragonOpenSeadragon 中的 RemoveHandler
【发布时间】:2019-07-01 15:27:55
【问题描述】:

我无法从查看器中删除处理程序。

viewer.addHandler('viewport-change', function() {
     // do stuff works
});

viewer.addHandler('zoom', function() {
    if (viewer.viewport.getZoom() > threshold) {
        viewer.removeHandler('viewport-change', function() {
            console.log("removed");
        });
        console.log("Zoom:" + viewer.viewport.getZoom());
    }
});

我可以看到带有缩放因子的输出,但我从未看到“已删除”的输出。 也只是添加和删除“viewport-change”处理程序没有工作。 removeAllHandlers 似乎工作,但我只删除一个处理程序失败。

我真正尝试做的是滑动效果。如果图像未放大并且左边缘击中查看器边框,我想显示下一张图像。也许有更好的方法来做到这一点。

提前致谢

【问题讨论】:

    标签: openseadragon


    【解决方案1】:

    为了使removeHandler 工作,它需要与addHandler 使用的函数完全相同,如下所示:

    var viewportChangeHandler = function() {
         // do stuff works
    };
    
    viewer.addHandler('viewport-change', viewportChangeHandler);
    
    viewer.addHandler('zoom', function() {
        if (viewer.viewport.getZoom() > threshold) {
            viewer.removeHandler('viewport-change', viewportChangeHandler);
            console.log("Zoom:" + viewer.viewport.getZoom());
        }
    });
    

    也就是说,如果您只想检测滑动,只需 canvas-drag 上的处理程序(加上您自己编写的一些额外逻辑)就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多