質問: liタグにis_activeと付いていない画像にマウスオーバーすると画像名の語尾に_onと付けたいのですが、どうしてもis_activeが付いたメニューまで_onが付いてしまい、画像リンク切れになってしまいます。 (top_on_on.pngになってしまう) ※Wordpressを絡める予定なので、アクティブなメニューの画像名には「_on」と付けたくないと思っています。 すみません。よろしくお願いします。 ``` ``` ``` // is_activeクラスを持っているli内のimgに_onを付ける is_activeMenuImg.attr('src', changeOnImg); //ココ $('.menu li a img').mouseover(function() { if( $(this).parent().parent().not('.is_active') ) { $(this).attr('src', $(this).attr("src").replace(".png", "_on.png")); } }); //マウスアウト時 $('.menu a img').mouseout(function() { $(this).attr('src', $(this).attr('src').replace('_on.png', '.png')); }); ```
回答: 一応動作しましたが、汚くなってしまいました・・・ 他のベストアンサーを待ちたいです。 kei344様ありがとうございます。 書き直しました。 ``` $('.menu img').mouseover(function() { if( !$(this).parents().hasClass("is_active" ) ) { $(this).attr('src', $(this).attr("src").replace(".png", "_on.png")); } }); $('.menu img').mouseout(function() { if( !$(this).parents().hasClass("is_active" ) ) { $(this).attr('src', $(this).attr('src').replace('_on.png', '.png')); } }); ```