所以我有一个问题,在我的jQuery代码中,当下拉切换有数据切换='悬停'应该显示子菜单时,如果这个切换有数据切换='下拉“应该只在点击时显示子菜单。 该代码似乎工作,但当窗口被调整大小,属性被改变从HOVER到DROPDOWN(另一种方式似乎工作得很好)悬浮功能仍然执行无论如何。jQuery悬停功能在if语句中
下面的代码
function main() {
if (($('a.dropdown-toggle').attr('data-toggle'))=='hover') {
$('.dropdown').hover(function() {
$('ul.dropdown-menu', this).stop(true, true).slideDown(100);
$(this).addClass('open');
}, function() {
$('ul.dropdown-menu', this).stop(true, true).slideUp(100);
$(this).removeClass('open');
});
}
}
$(document).ready(main);
$(window).resize(main);
和属性changement功能
function clickEvent() {
if(viewport().width <= 991) {
$('a.dropdown-toggle').attr('data-toggle','dropdown');
} else {
$('a.dropdown-toggle').attr('data-toggle','hover');
}
}
$(document).ready(clickEvent);
$(window).resize(clickEvent);
你已经设置了一些东西,以便你从“resize”事件调用'main()' - 每次调用它时,都会通过'.hover()'添加新的事件处理函数。那些jQuery事件处理程序API永远不会*替换先前的处理程序,它们总是在旧的处理程序之上添加新的处理程序,即使它们完全相同。 – Pointy