我的下拉菜单脚本如下:
$(document).ready(function() {
$('.myMenu > li').bind('mouseover', openSubMenu);
$('.myMenu > li').bind('mouseout', closeSubMenu);
function openSubMenu() {
$(this).find('ul').css('visibility', 'visible');
};
function closeSubMenu() {
$(this).find('ul').css('visibility', 'hidden');
};
});
当鼠标结束时显示下拉菜单。我想在我的响应主题上实现这一点,所以必须单击。我尝试了以下代码:
$('.myMenu > li').toggle(openSubmenu, closeSubmenu);
而不是2行.bind
。但它不起作用,.click
方法也没有帮助。那么如何将两个状态/函数放入.toggle
方法?
答案 0 :(得分:0)
如果这是点击上唯一发生的事情,您可以使用一个点击处理程序,然后切换CSS类:
$('.myMenu > li').bind('click', function(e) {$(this).toggleClass('hidden')});
答案 1 :(得分:0)
您可以简单地使用hover而不是使用鼠标事件,而是使用show()和hide()代替css隐藏,而不用担心它的跨浏览器。
$(document).ready(function() {
$('.myMenu').hover(function(){
$(this).find('ul').show();
}, function(){
$(this).find('ul').hide();
});
});
答案 2 :(得分:0)
使用" on"为鼠标悬停和单击添加事件侦听器。
$(document).ready(function() {
$('.myMenu > li').on('mouseover click', openSubMenu);
$('.myMenu > li').on('mouseout', closeSubMenu);
function openSubMenu() {
$(this).find('ul').css('visibility', 'visible');
};
function closeSubMenu() {
$(this).find('ul').css('visibility', 'hidden');
};
});
答案 3 :(得分:0)
我会为类切换创建一个处理程序,并将其绑定到所有所需的事件,如下所示:
<强> CSS 强>
li.hidden ul {
visibility: hidden;
}
<强>的Javascript 强>
var toggleHiddenClass = function(){
$(this).toggleClass('hidden');
};
$('.myMenu > li').bind('mouseover mouseout click', toggleHiddenClass);