События Seadragon - Получить Seadragon Viewer при запуске событий
У меня проблема. Я хочу иметь возможность создавать более одного объекта Seadragon Viewer на одной странице. Все в порядке, за исключением того, что я написал обработчик событий (например, click, mousemouse и т. Д.), И я хочу, чтобы они были универсальными.
Тем не менее, кажется, что нет способа узнать, какому зрителю Seadragon называется событие. Например, все события jQuery могут вызывать "this" для ссылки на элемент, для которого было инициировано событие. Единственный способ, который я нашел до сих пор, - это объявить моих зрителей Seadragon глобальными переменными, что не очень элегантно...
Есть ли "этот" эквивалент для Seadragon Events?
1 ответ
Я получил немного более элегантное решение, использующее массив для всех объектов Seadragon Viewer, которые я объявляю. Итак, я храню ссылку на SD Viewer в глобальном массиве. Каждый из элементов, используемых для создания объекта Seadragon, имеет класс "Seadragon".
Когда событие происходит, я делаю:
var id = $ (this).closest ('. SeadragonViewport'). attr ('id'); var cSDObj = g_SDObjects [id];
где cSDObj - текущий объект Seadragon, который я должен использовать.
Я открыт для любых предложений, которые лучше, чем этот, но пока он работал!