2

動的に追加されるクラス「addedelement」を持つ一連のdivがあります。このすべてのレイヤー内には、さらにネストされた div があり、そのうちの 1 つはイベントが添付された画像を含んでいます。この画像のいずれかをクリックすると、それらの div の LAST 内にあるかどうかを知りたい:

if($(this).is('div.addedelement:last div.contextmenu img.up'))
{
    alert('Ok');
}

理由はわかりませんが、この条件式は、トリガーが最後の 'elementadded' div 内にあるかどうかに関係なく実行されます。しかし、次のようにCSSを要素に適用しようとすると:

$('div.addedelement:last div.contextmenu img.up').css('display','none');

それは魅力のように機能します。私は何が欠けていますか?誰でも私を助けることができますか?

4

1 に答える 1

0

1つのオプションはjQueryメソッドを使用することです。キャッシュされたjQueryオブジェクト(-1)の長さがjQueryコレクション内の親要素のインデックスと等しい場合、indexクラスがの画像の最も近い親を選択し.addedelement、要素をメソッドに渡すことができますindexその場合、要素は最後の要素です。

// define these variables outside of the event handler 
var $a = $('div.addedelement'), len = $a.length - 1; 

// within your event handler
var cur = $(this).closest('div.addedelement').get(0);
if ( $a.index(cur) === len ) {
   // last
}

http://jsfiddle.net/Ga5s9/

でも。最後のdiv要素内の画像のみのハンドラーをクラスのクラスに登録する場合は、次のaddedelementようにコーディングできます。

$('div.addedelement').last().find('img.up').click(function(){
   // last
})
于 2012-12-28T18:00:12.407 に答える