target

target

target 属性 (DOM)

[4] Event オブジェクトtarget 属性は、事象発火された対象であるオブジェクトを表します。

ev:listener 要素 target 属性, ev:target 属性 (XML 事象)

[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 属性がなければ、 o1o5 のいずれの要素の物体が読み込まれた時にも処理されます。)

一見使い道があるのか疑問に思えますが、 処理される事象は対象要素のそのものについてだけであり、 子孫要素である o3o4 の事象も処理されません。 ですから、たとえば、

<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>

のような使い方ができるでしょう。