我将jquery v.2.2.4用于我的移动菜单。这是一个超级菜单。当用户单击级别1时,级别2应该向下滑动。换句话说:级别1只是具有标题且没有内容的导航级别。级别2相同。要查看/使用的所有页面都位于级别3和更高级别。
使用jquery v2.2.4。一切都好。现在,我必须升级到版本3.3.1。这里显示的是第1级的空白页面,而不是第2级的空白页面。 感谢您的帮助。
(function ($) {
// Level 1
$(document).ready(function () {
$('#mobile_menu').find('ul').each(function () {
var currentURI = window.location.href;
var links = $('a', this);
var collapse = true;
for (var i = 0; i < links.size(); i++) {
var elem = links.eq(i);
var href = elem.attr('href');
var hrefLength = href.length;
var compareTo = currentURI.substr(-1 * hrefLength);
if (href === compareTo) {
collapse = false;
$(elem).parent('li').parent('ul').css({'display': 'block'});
$(elem).css({'background-color': '#B3ADAD'});
break;
}
}
if (collapse) $(this).hide();
});
// Level 2
$('#mobile_menu').find('ul li ul').each(function () {
var currentURI = window.location.href;
var links = $('a', this);
var collapse = true;
for (var i = 0; i < links.size(); i++) {
var elem = links.eq(i);
var href = elem.attr('href');
var hrefLength = href.length;
var compareTo = currentURI.substr(-1 * hrefLength);
if (href === compareTo) {
collapse = false;
$(elem).parent('li').parent('ul').parent('li').parent('ul').css({'display': 'block'});
$(elem).css({'background-color': '#B3ADAD'});
break;
}
}
if (collapse) $(this).hide();
});
// Level 3
$('#mobile_menu').find('ul li ul li ul').each(function () {
var currentURI = window.location.href;
var links = $('a', this);
var collapse = true;
for (var i = 0; i < links.size(); i++) {
var elem = links.eq(i);
var href = elem.attr('href');
var hrefLength = href.length;
var compareTo = currentURI.substr(-1 * hrefLength);
if (href === compareTo) {
collapse = false;
$(elem).parent('li').parent('ul').parent('li').parent('ul').parent('li').parent('ul').css({'display': 'block'});
$(elem).css({'background-color': '#B3ADAD'});
break;
}
}
if (collapse) $(this).hide();
});
// Level 4
$('#mobile_menu').find('ul li ul li ul li ul').each(function () {
var currentURI = window.location.href;
var links = $('a', this);
var collapse = true;
for (var i = 0; i < links.size(); i++) {
var elem = links.eq(i);
var href = elem.attr('href');
var hrefLength = href.length;
var compareTo = currentURI.substr(-1 * hrefLength);
if (href === compareTo) {
collapse = false;
$(elem).parent('li').parent('ul').parent('li').parent('ul').parent('li').parent('ul').parent('li').parent('ul').css({'display': 'block'});
$(elem).css({'background-color': '#B3ADAD'});
break;
}
}
if (collapse) $(this).hide();
});
// Opening und Closing of the child menus
$('#mobile_menu').find('li.active').addClass('open').children('ul').show();
$('#mobile_menu').find('li.has-sub>a').on('click', function () {
$(this).removeAttr('href');
var element = $(this).parent('li');
if (element.hasClass('open')) {
element.removeClass('open');
element.find('li').removeClass('open');
element.find('ul').slideUp(200);
} else {
element.addClass('open');
element.children('ul').slideDown(200);
element.siblings('li').children('ul').slideUp(200);
element.siblings('li').removeClass('open');
element.siblings('li').find('li').removeClass('open');
element.siblings('li').find('ul').slideUp(200);
}
});
});
})(jQuery);
答案 0 :(得分:1)
您应该考虑添加jQuery migrate plugin,然后检查控制台中是否有可能指示问题的警告/消息。
即使未显示警告,它也应允许您的较新版本像以前的版本一样运行。