Javascript Jquery操作当前具有类标记的对象,而不是操作类本身?
因此,我目前正在开发一个响应joomlatemplate,它将在视口变小时用幻灯片导航取代导航栏。在本例中,我希望尽可能长地保留导航栏,我如下所述:我为导航创建了两个不同的css类,并且总是通过JS分配所需的css类。我把这些课程叫做“肖像”和“风景” 因此,在肖像的css中,我得到:Javascript Jquery操作当前具有类标记的对象,而不是操作类本身?,javascript,jquery,css,joomla3.0,responsiveness,Javascript,Jquery,Css,Joomla3.0,Responsiveness,因此,我目前正在开发一个响应joomlatemplate,它将在视口变小时用幻灯片导航取代导航栏。在本例中,我希望尽可能长地保留导航栏,我如下所述:我为导航创建了两个不同的css类,并且总是通过JS分配所需的css类。我把这些课程叫做“肖像”和“风景” 因此,在肖像的css中,我得到: .portrait .menu li{ width = 100%; ... } 在景观的css中,我得到: .lanscape .menu li{ width = auto; margin-left = 5px
.portrait .menu li{
width = 100%;
...
}
在景观的css中,我得到:
.lanscape .menu li{
width = auto;
margin-left = 5px;
margin-right = 5px;
...
}
现在,我确定了js文件中导航的最小宽度,如下所示:
var minnavwidth = 0;
var navelements = $jQ("#main-navigation").find(".menu").children();
for (var i = 0; i < navelements.length; i++) {
minnavwidth += $jQ(navelements[i]).outerWidth(true);
}
我现在的问题是,即使将“纵向”类指定给我的导航并删除“横向”类,slidemenu中的菜单项仍然有20%的宽度(5个菜单项)。我能想象的唯一原因是,JQuery将css分配给当前具有类的DOMnodes,而不是分配给类本身。对吗?除了在每次我切换类时手动重新分配属性之外,还有其他方法吗 “是的,除了在每次我切换类时手动重新分配属性之外,还有其他方法吗?”否,除了从%width切换到更大的宽度之外。。。在这种情况下,可以灵活地消除对jQuery的需求。我不认为有任何方法可以直接编辑CSS类属性,而不是编辑属于该类的DOM元素。
$jQ(".landscape .menu li").css("width", 100 / navelements.length + "%");