.on() を使用して委任されたイベントで jQuery セレクターを使用する方法はありますか? そして、セレクターで直接の子のみを選択するにはどうすればよいでしょうか? <div>
以下はコードのサンプルです: 要素の直接の子のみをフィルター処理したいと思います。<section>
その子の少なくとも 1 つに<p>
«hello» という単語が含まれている必要があります。この例では、2 番目のみ<div>
がフィルタリングされます。問題は、<div>
後で他のものを追加できるため、イベントを委任する必要があることです。
.live() メソッドを使用すると、私が使用できたように、より単純になりました。
$('section > div').filter(function(){return /hello/.test(p) }).live('mouseenter', function(){ ... })
しかし、現在は非推奨になっているため、代わりの .on() は委任されたイベントで純粋な CSS のようなセレクターのみを許可します。<p>
前述の 2 つの条件 (直接の子とhello を含む)に基づいてこれらの要素をフィルター処理する方法について誰か考えていますか? ありがとう
<section>
<div>
<p>abc</p>
<div>
<p>def</p>
<p>hello</p>
</div>
</div>
<div>
<p>hello world</p>
<p>test</p>
</div>
</section>
編集: JS サンプルを追加するのを忘れていました。p:contains('hello') がセレクターとして十分でないように条件を少し変更しています。
$('section').on({
mouseenter: function(){
$(this).css('background-color','red');
}
},
$('div').filter(function(){
var p = $(this).children('p').filter(function(){
return /hello/.test($(this).text());
});
return p.length > 2;
})
);