我正在尝试使用以下代码为响应式主题中的菜单删除窗口调整大小的类,但它不起作用。
(function() {
var $window = $(window),
$ul = $('ul.nav');
$window.resize(function(){
if ($window.width() < 979) {
return $ul.addClass('float');
}else{
$ul.removeClass('float')};
}).trigger('resize');
});
.float 不是用 .css 定义的。如果子菜单(在管理区域中动态生成)太大而无法放入容器中,它就在那里。
这是子菜单太大时生成“浮动效果”的代码
$('.float > li.dropdown > a + ul').each(function(index, element) {
// IE6 & IE7 Fixes
if ($.browser.msie && ($.browser.version == 7 || $.browser.version == 6)) {
var category = $(element).find('a');
var columns = $(element).find('ul').length;
$(element).css('width', (columns * 143) + 'px');
$(element).find('ul').css('float', 'left');
}
var menu = $('.float').offset();
var dropdown = $(this).parent().offset();
i = (dropdown.left + $(this).outerWidth()) - (menu.left + $('.float').outerWidth());
if (i > 0) {
$(this).css('margin-left', '-' + (i + 5) + 'px');
}
});
这是菜单代码开头的一部分
<?php if ($categories) { ?>
<div class="menu">
<ul class="nav float">
<?php foreach ($categories as $category) { ?>
<li class="dropdown"><a href="<?php echo $category['href']; ?>">
<?php echo $category['name']; ?></a>
.
.
.
.
ecc.
在调整窗口大小时删除/添加类“.float”的任何其他想法?提前感谢任何提示。
编辑
在尝试了一点之后,我找到了使用 .css 查询的替代解决方案
@media (max-width: 979px)
现在它正在工作,但我仍然不明白为什么 jQuery 调整大小不起作用。