-1

私は(私は)非常に単純な問題を抱えていますが、何が悪いのか理解できません。コードはすべてを教えてくれます:

$(".all-products h3").mouseenter(function () {
    $(this).siblings('p').slideDown(200);
}).mouseleave(function () {
    $(this).siblings('p').slideUp(500);
});

これはhtmlです:

<a title="xxx" href="#">
    <img src="1.jpg"/>
    <p>description</p>
    <h3>header3</h3>
</a>

これは正常に機能しますが、jqueryでh3をaに置き換えると機能しないので、以下ではこのように機能しません。

$(".all-products a").mouseenter(function () {
    $(this).siblings('p').slideDown(200);
}).mouseleave(function () {
    $(this).siblings('p').slideUp(500);
});
4

4 に答える 4

2

aの兄弟ではなく、pの親ですp.children('p')または代わりに使用してみてください.find('p')(前者の方が具体的です)。

于 2013-02-06T00:23:44.760 に答える
1
$(".all-products a").mouseenter(function () {
    $(this).find('p').slideDown(200);
}).mouseleave(function () {
    $(this).find('p').slideUp(500);
});

の兄弟は、DOMの同じレベルに存在します。あなたの場合、要素を.find()するか、children()を呼び出します。どちらにしても。

于 2013-02-06T00:23:13.093 に答える
1

兄弟を使用しているからです。

これを試して:

$(".all-products a").mouseenter(function(){
          $('p', this).slideDown(200);
           }).mouseleave(function() {
          $('p', this).slideUp(500);
        });
于 2013-02-06T00:23:26.980 に答える
1

さて、主要な問題は、そのp要素がの兄弟ではないということだと思われaます。に置き換える必要がありsiblings()ますchildren()

于 2013-02-06T00:24:20.300 に答える