让这个下拉列表正常运行有些困难。当您将鼠标悬停在下拉的元素上时,它应该保持打开状态。我做了一个函数,每半秒检查一次你的鼠标是否悬停在该元素上,如果是,它什么也不做,如果不是,它关闭下拉菜单。这是我的小提琴,看看我的意思:http: //jsfiddle.net/KyCyB/
这是我的 JS:
$('.navBarClickOrHover').mouseover(function () {
var targetDrop = $(this).attr('targetDropDown');
if ($('.dropdownCont[isOpen="true"]').length != 0) {
$('.dropdownCont[isOpen="true"]').attr('isOpen', 'false');
$('.dropdownCont[isOpen="true"]').animate({
"height": "0px"
}, 200, function () {
$('#' + targetDrop).attr('isOpen', 'false');
$('#' + targetDrop).animate({
"height": "200px"
});
});
} else {
$('#' + targetDrop).animate({
"height": "200px"
});
}
}).mouseout(function () {
var targetDrop = $(this).attr('targetDropDown');
setTimeout(function () {
if ($('#' + targetDrop).attr('isHoveredOver') == 'true') {
//DONOTHING
} else {
$('#' + targetDrop).animate({
"height": "0px"
});
}
}, 500);
});
$('.dropdownCont[isOpen="true"]').mouseover(function () {
$(this).attr('isHoveredOver', 'true');
}).mouseout(function () {
$(this).attr('isHoveredOver', 'false');
});
对于冗长且重复的代码,我很抱歉,一旦我让它正常工作,我就会让它更加面向对象,我只是一直在弄乱它,试图让它按照我想要的方式工作。肯定卡住了。如果您之前错过了该链接,这里又是:http: //jsfiddle.net/KyCyB/ 任何帮助或不同的方法都会很棒!谢谢!