フォーカスとクリックの両方でサブナビゲーションを表示/非表示にする小さな jQuery 関数を作成しましたが、なぜ機能しないのかわかりません。
HTMLコードは次のとおりです。
<ul id="nav">
<li>
<a href="http://foo.com">Foo</a>
<ul>
<li><a href="#">Sub 1</a></li>
<li><a href="#">Sub 2</a></li>
<li><a href="#">Sub 3</a></li>
</ul>
</li>
<li>(...)</li>
</ul>
そして、ここにjQuery関数があります:
$(document).ready(function() {
subnavDisplay('#nav > li > a');
});
var subnavDisplay = function(selector){
if(!$(selector).length) return;
$(selector).focus(function() {
console.log('focus');
$(this).parent().addClass('is_opened').siblings().removeClass('is_opened');
});
$(selector).click(function(e) {
console.log('click');
if($(this).parent('is_opened').length === 0) {
e.preventDefault();
$(this).parent().addClass('is_opened').siblings().removeClass('is_opened');
}
});
};
サブナビを表示するリンクをアクティブにすると、フォーカス機能が常に再生され、クリック機能は再生されません。なぜなのかご存知ですか ?
ご回答ありがとうございます。