なぜelse {}の部分が機能しないのですか?そして解決策は何ですか?console.logの '...'内の.........が表示されていますが、 'out'は表示されません。ありがとう。ここでJavaScript event.target with Ifステートメント
var header = $('header');
header.mouseover(function(event) {
if ($(event.target).parents('li').attr('rel').length > 0) {
console.log('in')
} else {
console.log('out')
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>
<ul>
<li rel="one"> One Element</li>
<li rel="two"> One Element</li>
<li> Other Element</li>
<li> Other Element</li>
<li> Other Element</li>
<li> Other Element</li>
</ul>
</header>
おそらく '$(event.target).parents( 'li')。attr( 'rel')。length'は決してゼロより大きくありません。その属性を変更するコードはありません。 – Quentin
属性を持つliの上にマウスを置くとコンソールに 'in'が表示されますが、 'out'の部分は表示されません。 –
問題を再現できません。 'li'という親がないので、' attr( "rel") 'は常に定義されていないので、エラーを吐き出すだけです。 (最初に 'li'に' rel'を置くのは意味がありません)。リスト項目にはどのような関係がありますか?それはリンクではありません。 – Quentin