在悬停jQuery上保持下拉列表打开
Keep dropdown open on hover jQuery
我正在制作一个快速的动画下拉菜单。当您mouseover
并mouseout
初始按钮时,我让它工作得很好。我只是无法获得当您将鼠标悬停在下拉列表本身上时下拉到"保持"的 HTMLdiv。这是我正在做的事情的小提琴:http://jsfiddle.net/kAhNd/
这是我在JS中所做的:
$('.navBarClickOrHover').mouseover(function () {
var targetDropDown = $(this).attr('targetDropDown');
var targetDropDownHeight = $('#' + targetDropDown).height();
$('#' + targetDropDown).animate({
'height': '200px'
});
}).mouseout(function () {
if ($('.dropdownCont').is(':hover') || $('.navBarClickOrHover').is(':hover')) {
} else {
var targetDropDown = $(this).attr('targetDropDown');
var targetDropDownHeight = $('#' + targetDropDown).height();
$('#' + targetDropDown).animate({
'height': '0px'
});
}
});
它可以工作,但是当您将鼠标悬停在元素上时,该元素不会保持下拉状态。我添加了
if ($('.dropdownCont').is(':hover') || $('.navBarClickOrHover').is(':hover')) {
}
尝试让它在悬停在".dropdownCont"上时不执行任何操作。
很难解释。对不起,我希望我说得有道理。任何帮助都会很棒!这是我的小提琴:http://jsfiddle.net/kAhNd/
这是您的代码转换 http://jsfiddle.net/krasimir/kAhNd/3/
var button = $('.navBarClickOrHover');
var isItOverTheDropdown = false;
var showDropDown = function() {
var targetDropDown = $('#' + button.attr('targetDropDown'));
var targetDropDownHeight = targetDropDown.height();
targetDropDown.animate({
'height': '200px'
});
targetDropDown.off("mouseenter").on("mouseenter", function() {
isItOverTheDropdown = true;
});
targetDropDown.off("mouseleave").on("mouseleave", function() {
isItOverTheDropdown = false;
hideDropDown();
});
}
var hideDropDown = function() {
var targetDropDown = $('#' + button.attr('targetDropDown'));
var targetDropDownHeight = targetDropDown.height();
targetDropDown.animate({
'height': '0px'
});
}
$('.navBarClickOrHover').mouseover(function () {
showDropDown();
}).mouseout(function () {
setTimeout(function() {
!isItOverTheDropdown ? hideDropDown : '';
}, 500);
});
我想这就是你想要实现的。
相关文章:
- 如何使用jQuery选择下拉列表的值
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- Javascript按钮下拉列表
- jQuery表单添加不适用于下拉列表
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 禁用jQuery中的下拉列表
- 如何在按钮中显示下拉列表中选定的元素
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- 如何使单击时的下拉列表不悬停
- 鼠标悬停时打开下拉列表
- 使用 dojo 将鼠标悬停在动态下拉列表选择上时添加工具提示
- 如何在引导下拉列表悬停时添加延迟
- 启用下拉列表仅在单击后悬停
- 使用 jquery 在悬停时打开下拉列表
- jQuery 下拉列表 将鼠标悬停在两个不同的元素上
- 悬停时的 jQuery 下拉列表行为
- 在悬停jQuery上保持下拉列表打开
- 显示与您正在悬停的项目相关的下拉列表
- 使导航栏与悬停下拉列表
- JQuery取消下拉列表/在快速悬停操作时向下滑动列表