OpenSeadragon 中的 RemoveHandler
RemoveHandler in OpenSeadragon
我无法从查看器中删除处理程序。
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());
}
});
我可以看到带有缩放系数的输出,但我从未看到 "removed" 输出。
另外,仅添加和删除 "viewport-change"-handler 也不起作用。 removeAllHandlers 似乎有效,但我只删除一个处理程序失败了。
我真正尝试做的是类似滑动效果的东西。如果图像没有放大并且左边缘碰到查看器边框,我想显示下一张图像。也许有更好的方法。
提前致谢
为了使 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
上的处理程序(加上您自己编写的一些额外逻辑)就足够了。
我无法从查看器中删除处理程序。
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());
}
});
我可以看到带有缩放系数的输出,但我从未看到 "removed" 输出。 另外,仅添加和删除 "viewport-change"-handler 也不起作用。 removeAllHandlers 似乎有效,但我只删除一个处理程序失败了。
我真正尝试做的是类似滑动效果的东西。如果图像没有放大并且左边缘碰到查看器边框,我想显示下一张图像。也许有更好的方法。
提前致谢
为了使 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
上的处理程序(加上您自己编写的一些额外逻辑)就足够了。