我有一个下拉菜单,所以当用户将鼠标悬停在该按钮上时,他应该获得选项列表而不点击它。这是我的下拉菜单:
<div class="Menu"">
<div class="btn-group">
<button type="button" id="someAction" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Select Action
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a class="add">Add</a></li>
<li><a class="remove">Remove</a></li>
</ul>
</div>
</div>
这是我的悬浮代码,但由于某些原因它无效。
$(document).ready(function () {
$('#someAction').hover(function () {
$(this).find('dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function () {
$(this).find('dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
}); });
忘记提及点击我应该能够选择该选项
答案 0 :(得分:2)
更正您的选择器.dropdown-menu
:
$(document).ready(function () {
$('#someAction').hover(function () {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function () {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
});
你错过了.find()
函数中的类选择器点;
嗯,这可能是你现在的问题:当你离开按钮时,下拉菜单淡出,所以你不能选择任何选项。
那是因为你的悬停选择器是#someAction
。将其更改为.dropdown-menu
和#someAction
父级:
$(document).ready(function () {
$('.btn-group').hover(function () {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function () {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
});
以及此作品:
$(document).ready(function () {
$('.Menu').hover(function () {
....
不要忘记在选项点击时fadeOut .dorpdown-menu
。
$('.dropdown-menu li a').click(function(){
$(this).parents('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
})
答案 1 :(得分:0)
您的代码无效。按钮中没有.dropdown-menu
。使用:
$('#someAction').hover(function () {
$('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
},function(){
$('.dropdown-menu').stop(true, true).delay(200).fadeOut(500)
;})
<强> Working Fiddle 强>
答案 2 :(得分:0)
使用类选择器('。dropdown-menu')
获取下拉列表答案 3 :(得分:0)
你有2个小错误和1个错误:
HTML双引号的第一个错误:
<div class="Menu"">
应该是:
<div class="Menu">
javascript关闭代码上的第二个错误,错误与您忘记输入.
作为css类选择器的选择器:
$(document).ready(function () {
$('#someAction').hover(function () {
$(this).find('dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function () {
$(this).find('dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
});
});//why another close tag? error.
它应该是:
$(document).ready(function () {
$('#someAction').hover(function () {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function () {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
});
答案 4 :(得分:0)
<强> Jsfiddle Demo 强>
你犯了多个错误。
});
。删除它。<div class="Menu">
现在你的代码变成了:
<强> HTML:强>
<div class="Menu">
<div class="btn-group">
<button type="button" id="someAction" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Select Action
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a class="add">Add</a></li>
<li><a class="remove">Remove</a></li>
</ul>
</div>
</div>
<强>使用Javascript:强>
$(document).ready(function () {
$('.dropdown-menu').fadeOut(); //Just hiding dropdown at first for testing purposes.
$('#someAction').hover(function () {
$('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function () {
$('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
});
答案 5 :(得分:0)
在菜单淡出之前,您仍然无法选择任何选项。
为了保持菜单可见,我改变了你的HTML
将id =“someAction”移至父div
<div class="Menu">
<div class="btn-group" id="someAction" style="float:left">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Select Action
<span class="caret"></span>
</button>
<ul class="dropdown-menu" style="display:none">
<li><a class="add">Add</a></li>
<li><a class="remove">Remove</a></li>
</ul>
</div>
</div>