jQuery委托选择器问题

时间:2011-07-10 10:13:09

标签: javascript jquery

我正在尝试将click事件委托给所有现在和未来div的所有第一个锚标签,并使用“panels”类。我做了类似的事情:

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

但这不起作用。它只将事件绑定到一个,首先是“.panels”。任何提示?

2 个答案:

答案 0 :(得分:3)

我认为你不能仅仅使用选择器来做这件事,除非发生a元素不仅仅是第一个锚点,而是“面板”{{1}中任何类型的第一个子元素(在这种情况下,您可以使用div)。

您可能必须在处理程序本身中放置一些逻辑,以检查单击的锚点是:first-child中的第一个锚点。这些方面的东西:

div

Live example

这是有效的,因为$("#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对象中,因此检查andSelfthis元素是否有效。

答案 1 :(得分:3)

您想使用:first-child:first只返回一个元素。

您现在正在做的事情等于$('.panels a').get(0)

来源:
http://api.jquery.com/first-selector/