次のような要素を含むページがあります。
<div id='things'>
<div class='thing'>
<div class='activator'>
<span>Some text</span>
</div>
</div>
</div>
コードは次のようになります。
$('things').observe(click, function(event) {
var e = event.element();
if (e.match('.activator')) {
doSomeStuffWith(e);
} else if (e.match('.activator *')) {
doSomeStuffWith(e.up('.activator');
}
});
したがって、.activator またはその子要素のいずれかをクリックして、.activator で関数を呼び出したい場合、2 つの if 句を組み合わせる方法がないかどうか疑問に思っています。if (e.match('.class, .class *') { doStuff(e.upOrSelf('activator')); } のようなもの
upOrSelf メソッドで Element を拡張できると思います。ただし、可能であれば、非標準のカスタマイズは行いたくないです。