target
属性 (DOM)[2] XML事象の target
属性
<http://www.w3.org/TR/xml-events#attr-listener-target>
は、事象聴取器の対象要素を指定します。
この属性の値の型は IDREF
です。
この属性が指定されていなければ、 観察者要素自身とその子孫要素で発生した事象がその事象聴取器によって処理されることになります。 しかし、この属性が指定されている時には、 識別子が一致した場合に限って処理します。
この性質から、対象要素は観察者要素自身かその子孫要素であるべきです。 そうでないと意味がありません。
[3] たとえば、
<object id="o1"> <object id="o2"> <object id="o3"/> <object id="o4"/> </object> <object id="o5"/> </object> <onevent ev:event="load" ev:observer="o1" ev:target="o2"> ... </onevent>
では、 onevent 要素は、
o2 の物体が読み込まれた時にのみ処理されます。
(もし target
属性がなければ、
o1〜o5 のいずれの要素の物体が読み込まれた時にも処理されます。)
一見使い道があるのか疑問に思えますが、 処理される事象は対象要素のそのものについてだけであり、 子孫要素である o3 や o4 の事象も処理されません。 ですから、たとえば、
<image id="image"> <area id="area1"/> <area id="area2"/> <ev:listener event="click" target="area1"/> <ev:listener event="click" target="area2"/> <ev:listener event="click"/><!-- 範囲外 --> </image>
のような使い方ができるでしょう。