"パネル"クラスのすべての現在および将来のdivのすべての最初のアンカータグにclickイベントを委任しようとしています。私はそのようなことをした:jQueryデリゲートセレクターの問題
$('#panel').delegate('.panels a:first', 'click', function(event) [...]
しかし、それは動作しません。これはイベントを1つの最初の ".panels"にのみバインドします。何かヒント?
"パネル"クラスのすべての現在および将来のdivのすべての最初のアンカータグにclickイベントを委任しようとしています。私はそのようなことをした:jQueryデリゲートセレクターの問題
$('#panel').delegate('.panels a:first', 'click', function(event) [...]
しかし、それは動作しません。これはイベントを1つの最初の ".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
両方の保証がthis
が[0]
番目の要素作品であればそのチェック、ドキュメント順にjQueryオブジェクト内の配列を維持するために動作します。
:first-child
、:first
は1つの要素のみを返します。あなたが今何をしている
は$('.panels a').get(0)
ソースに等しいです:最初に、子供は十分です:
http://api.jquery.com/first-selector/
ありがとう。から変更する:最初の:最初の子作品。 :) – ThomK
聞いて嬉しいです:) –
はい、それはそう、常に「パネル」内の最初の子です。あなたは速かったので、私はあなたの答えを正しいとマークします。 :) – ThomK