我的网站上的下拉菜单有一个小问题。( http://tornaia.com ) 当鼠标刚刚在菜单外时,菜单消失,我必须回到顶部。当菜单有 3 或 4 个级别时,这可能有点烦人。有什么方法可以延迟菜单,使其不会立即消失吗?
谢谢!
(前段时间我试图在 Wordpress 论坛中解决这个问题,但我们没有成功。无论如何这里有一个链接,所以你可以看到我们尝试了哪些解决方案:http ://wordpress.org/support/topic/how- to-delay-the-drop-down-menu-1?replies=10 )
------编辑(我在这里尝试过):--------
我找到了这个文件: wp-content --> 主题 --> rumput-hijau --> js --> methods.js
var $j = jQuery.noConflict();
$j(document).ready(function(){
/* Reponsive videos */
$j(".content-right").fitVids();
/* Reponsive menus */
$j(".nav").mobileMenu();
/* Drop down menus */
$j(".inside-primary-nav ul li ul").parent().addClass("arrow");
$j(".inside-primary-nav ul li").hover(function(){
$j(this).addClass("hover");
$j(this).find("ul:first").slideToggle("fast");
}, function(){
$j(this).removeClass("hover");
$j(this).find("ul:first").slideUp("fast");
});
});
所以我尝试将最后一行更改为
$j(this).find("ul:first").delay('900').slideUp("fast");
但这弄乱了菜单。然后我尝试了这个
/* Drop down menus */
$j(".inside-primary-nav ul li ul").parent().addClass("arrow");
$j(".inside-primary-nav ul li").hover(function(){
$j(this).addClass("hover");
$j(this).find("ul:first").slideDown("slow");
}, function(){
$j(this).removeClass("hover");
$j(this).find("ul:first").slideUp("slow");
});
此代码使菜单在向下滑动时变慢,但是当您的鼠标移开时菜单不再保留。所以这不是我要找的。我希望菜单在您用鼠标离开后保持一秒钟(或其他时间)。这样一来,你若无心离开,它就不会消失,你可以继续。所以我尝试了
$j(".inside-primary-nav ul li ul").parent().addClass("arrow");
$j(".inside-primary-nav ul li").hover(function(){
$j(this).addClass("hover");
$j(this).find("ul:first").slideDown("slow");
}, function(){
$j(this).removeClass("hover");
setTimeout(function() {
$j(this).find("ul:first").slideUp("slow");
}, 1000);
});
此代码使您第一次悬停菜单时下拉菜单变慢。第二次悬停它时,它似乎已经打开,所以它只是弹出。但是向上滑动并没有改变。当我拿菜单的鼠标时,它仍然消失。
----------------- 编辑:在问题的第一个代码中,我插入了文件的整个代码,而不仅仅是“/* 下拉菜单 */”-part