我有一个页面,其元素类似于:
<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 上调用一个函数,我只是想知道是否没有某种方法可以组合这两个 if 子句。像 if (e.match('.class, .class *') { doStuff(e.upOrSelf('activator')); }
我想我可以使用 upOrSelf 方法扩展 Element。但如果可能的话,我宁愿不做任何非标准的定制。