我正在尝试将click事件委托给所有现在和未来div的所有第一个锚标签,并使用“panels”类。我做了类似的事情:
$('#panel').delegate('.panels a:first', 'click', function(event) [...]
但这不起作用。它只将事件绑定到一个,首先是“.panels”。任何提示?
答案 0 :(得分:3)
我认为你不能仅仅使用选择器来做这件事,除非发生a
元素不仅仅是第一个锚点,而是“面板”{{1}中任何类型的第一个子元素(在这种情况下,您可以使用div
)。
您可能必须在处理程序本身中放置一些逻辑,以检查单击的锚点是:first-child
中的第一个锚点。这些方面的东西:
div
这是有效的,因为$("#panel").delegate(".panels a", "click", function() {
if ($(this).siblings("a").andSelf()[0] === this) {
// It's the first anchor in its parent
}
return false;
});
和siblings
都保证以文档顺序将数组保存在jQuery对象中,因此检查andSelf
是this
元素是否有效。
答案 1 :(得分:3)
您想使用:first-child
,:first
只返回一个元素。
您现在正在做的事情等于$('.panels a').get(0)