Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery操作当前具有类标记的对象,而不是操作类本身?_Javascript_Jquery_Css_Joomla3.0_Responsiveness - Fatal编程技术网

Javascript Jquery操作当前具有类标记的对象,而不是操作类本身?

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

因此,我目前正在开发一个响应joomlatemplate,它将在视口变小时用幻灯片导航取代导航栏。在本例中,我希望尽可能长地保留导航栏,我如下所述:我为导航创建了两个不同的css类,并且总是通过JS分配所需的css类。我把这些课程叫做“肖像”和“风景”

因此,在肖像的css中,我得到:

.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 + "%");