当我点击时,我正在努力让下拉关闭。
只有在点击父级时才会关闭。
$("#nav > ul > li").on('click', function(){
$(this).toggleClass('active');
});
在这种情况下,最佳解决方案是什么?
答案 0 :(得分:1)
添加以下事件处理程序
$("#nav > ul > li > ul").on("mouseleave", function(){
$(this).parent().toggleClass('active');
});
答案 1 :(得分:0)
检查jQuery mouseup / mousedown 事件。
$("#nav > ul > li").on('click', function(){
$(this).toggleClass('active');
});
$(document).on('mouseup',function(e){
$('li.active').removeClass('active');
});
答案 2 :(得分:0)
这是你如何做到的
$('#nav > ul > li').on({
mouseenter: function() {
$('a', this).addClass('hover');
},
mouseleave: function() {
if (! $(this).hasClass('active') )
$('a', this).removeClass('hover');
},
click: function(){
$('.active').not(this).removeClass('active');
$('.hover').not( $(this).find('a') ).removeClass('hover');
$(this).toggleClass('active');
}
});
$(document).on('click', function(e) {
if ( $(e.target).closest('#nav .active').length === 0 )
$('.active').removeClass('active').find('a').removeClass('hover');
});
修正了一些其他问题