Javascript jQuery委托选择器问题
我正在尝试将单击事件委托给所有具有“panels”类的now和future div的所有第一个锚点标记。我是这样做的:Javascript jQuery委托选择器问题,javascript,jquery,Javascript,Jquery,我正在尝试将单击事件委托给所有具有“panels”类的now和future div的所有第一个锚点标记。我是这样做的: $('#panel').delegate('.panels a:first', 'click', function(event) [...] 但这不起作用。它只将事件绑定到一个,第一个“.panels”。有什么提示吗?我认为你不能仅仅用选择器来实现这一点,除非a元素不仅仅是第一个锚点,而且是“panels”div中任何类型的第一个子元素(在这种情况下,你可以使用:first
$('#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)
来源:
是的,在“面板”中总是第一个孩子,所以:第一个孩子就足够了。您的速度更快,因此几分钟后我会将您的答案标记为正确。:)