我試圖委託單擊事件到所有現在和未來divs與「面板」類的所有第一錨標記。我做了這樣的事情:jQuery委託選擇器問題
$('#panel').delegate('.panels a:first', 'click', function(event) [...]
但這並不起作用。它僅將事件綁定到一個,第一個「.panels」。任何提示?
我試圖委託單擊事件到所有現在和未來divs與「面板」類的所有第一錨標記。我做了這樣的事情:jQuery委託選擇器問題
$('#panel').delegate('.panels a:first', 'click', function(event) [...]
但這並不起作用。它僅將事件綁定到一個,第一個「.panels」。任何提示?
我不認爲你可以只用一個選擇器來做到這一點,除非碰巧a
元素不僅僅是第一個錨點,而是「面板」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
和andSelf
既保證保持文檔順序jQuery對象內部的數組,所以檢查是否this
是[0]
個元素的作品。
要使用:first-child
,:first
只返回一個元素。
你現在正在做的是等於$('.panels a').get(0)
謝謝。從第一個變爲第一個孩子。 :) – ThomK
很高興聽到:) –
是的,它總是第一個孩子在「板」,所以:第一,孩子是不夠的。你的速度更快,所以在幾分鐘內我會將你的答案標記爲正確。 :) – ThomK