1

私は問題があります。同じページで複数の Seadragon Viewer オブジェクトをインスタンス化できるようにしたいと考えています。すべて問題ありませんが、イベント ハンドラー (クリック、マウスマウスなど) を作成し、それらを汎用にしたいことを除きます。

ただし、このイベントがどの Seadragon ビューアーで呼び出されているかを知る方法はないようです。たとえば、すべての jQuery イベントは「this」を呼び出して、イベントがトリガーされた要素を参照できます。これまでに見つけた唯一の方法は、Seadragon ビューアをグローバル変数として宣言することですが、これはあまりエレガントではありません...

シードラゴン イベントに相当する「これ」はありますか?

4

1 に答える 1

0

宣言するすべての Seadragon Viewer オブジェクトの配列を使用して、もう少し洗練されたソリューションを得ました。そのため、SD ビューアーの参照をグローバル配列に格納します。Seadragon オブジェクトを intanciate するために使用される各要素には、クラス "Seadragon" があります。

イベントが発生したら、次のことを行います。

var id = $(this).closest('.SeadragonViewport').attr('id'); var cSDObj = g_SDObjects[id];

ここで、cSDObj は、使用する必要がある現在の Seadragon オブジェクトです。

これよりも優れた提案を歓迎しますが、これまでのところうまくいきました!

于 2012-09-25T14:34:52.350 に答える