やあ、スタック オーバーフロー クルー、
jquery を使用してカスタム ドロップ ダウン ナビゲーション システムを構築するときに、常に出てくる簡単な質問です。ドロップダウン メニューの理想的なシナリオは、親と子を
プライマリ ナビゲーション アイテムを含む DIV と、子メニューを含む別の DIV があるとします。
親をロールオーバーすると、子メニューが表示されますが、これらが別々の場合、ロールアウト状態はトリッキーになります。だから私はホバーをネストしてこれを回避しようとしましたが、ほとんどうまくいきました。
$("div.primary-nav").mouseenter(function () {
clearTimeout($(this).data('timeoutId'));
$("div.doormat-nav-wrapper").slideDown("slow");
}).mouseleave(function () {
$("div.doormat-nav-wrapper").mouseenter(function () {
clearTimeout($(this).data('timeoutId'));
$("div.doormat-nav-wrapper").slideDown("slow");
}).mouseleave(function () {
var someelement = this;
var timeoutId = setTimeout(function(){
$("div.doormat-nav-wrapper").slideUp("slow");
$(someelement).data('timeoutId', timeoutId); //set the timeoutId, allowing us to clear this trigger if the mouse comes back over
});
});
});
論理的に私が達成しようとしているのは
ユーザーが div.primary-nav をロールオーバーすると .... div.doormat-nav-wrapper が表示されます... プライマリ ナビゲーションをロールオフすると div.doormat-nav-wrapper が非表示になります div.doormat-nav-wrapper 自体がホバリングされています。
フィードバックや提案をいただければ幸いです。ありがとう!