获取以“foo”开头的类的元素并将事件附加到它们

时间:2013-09-25 15:20:24

标签: mootools

我想找到以foo开头的类的元素,并将事件监听器附加到它们。

这显然有效$$('li[class^=foo]'),但前提是foo是元素的第一个类。所以我去了$$('li').hasClass([class^=foo]);

虽然有效,但现在我想使用...... class^=foo]).addEvent(...,但这不起作用 Object [object Array] has no method 'addEvent' - Fiddle

也试过

$$('li').hasClass([class^=foo]).each(function (el) {  
    el.addEvent('mouseenter', function () {
    //...

但没有成功 - Fiddle

我错过了什么?

1 个答案:

答案 0 :(得分:3)

好。你可以做的几件事。

var li_elms = $$('li[class*=foo]'); 

可以正常使用,但也会包含blahfoo

你可以过滤:

var li_elms = $$('li').filter(function(el){ 
    return el.get('class').indexOf('foo') !== -1; 
});

你也可以将事件委托给父ul,并检查在开火时是否应该考虑匹配el。