Javascript jQuery委托选择器问题

Javascript jQuery委托选择器问题,javascript,jquery,Javascript,Jquery,我正在尝试将单击事件委托给所有具有“panels”类的now和future div的所有第一个锚点标记。我是这样做的: $('#panel').delegate('.panels a:first', 'click', function(event) [...] 但这不起作用。它只将事件绑定到一个,第一个“.panels”。有什么提示吗?我认为你不能仅仅用选择器来实现这一点,除非a元素不仅仅是第一个锚点,而且是“panels”div中任何类型的第一个子元素(在这种情况下,你可以使用:first

我正在尝试将单击事件委托给所有具有“panels”类的now和future div的所有第一个锚点标记。我是这样做的:

$('#panel').delegate('.panels a:first', 'click', function(event) [...]

但这不起作用。它只将事件绑定到一个,第一个“.panels”。有什么提示吗?

我认为你不能仅仅用选择器来实现这一点,除非
a
元素不仅仅是第一个锚点,而且是“panels”
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;
});


这是因为
同级
以及self
都保证将数组按文档顺序保存在jQuery对象中,因此检查
这个
是否是
[0]
第四个元素起作用。

如果要使用
第一个子元素
:first
只返回一个元素

您现在所做的等于
$('.panels a')。获取(0)

来源:

是的,在“面板”中总是第一个孩子,所以:第一个孩子就足够了。您的速度更快,因此几分钟后我会将您的答案标记为正确。:)