Динамический CSS не применяется весной 3.0 + Tiles
Я использую Spring 3.0 + плитки. Я создал общее меню с тегом привязки для всех страниц и применил CSS для того же. Я использую Jquery для динамического изменения класса CSS для меню при нажатии на меню.
Когда выбрано меню / ссылка, должен применяться класс css "selectedTab", а для всех обычных ссылок должен применяться класс css "tab". Я сталкиваюсь с проблемой, что с каждым запросом / щелчком в меню применяется класс стиля, а затем после ответа он снова не применяется. То есть стиль остается примененным между запросом и ответом. Но не после ответа. Код для ссылок меню выглядит так:
<div id="menu" class=" mainPageLayout clearFix" style="width:980px;margin:0 auto;">
<a id="dashboard" class="selectedTab" href="dashboard.html" onclick="return changeCss('dashboard');">
<span>Dashboard</span>
</a>
<a id="projects" class="tab" href="projectscontroller.html" onclick="return changeCss('projects');">
<span>Projects</span>
</a>
<a id="milestones" class="tab" href="milestones.html" onclick="return changeCss('milestones');">
<span>Milestones</span>
</a>
<a id="tasks" class="tab" href="tasks.html" onclick="return changeCss('tasks');">
<span>Tasks</span>
</a>
<a id="discussions" class="tab" href="messages.html" onclick="return changeCss('discussions');">
<span>Discussions</span>
</a>
<a id="reports" class="tab" href="reports.html" onclick="return changeCss('reports');">
<span>Reports</span>
</a>
<a id="history" class="tab" href="projects/history.html" onclick="return changeCss('history');">
<span>History</span>
</a>
<a id="templates" class="tab" style="float: right;" href="projects/users.html" onclick="return changeCss('templates');">
<span>Project templates</span>
</a>
<a id="users" class="tab" style="float: right;" href="projects/projectTemp.html" onclick="return changeCss('users');">
<span>Users</span>
</a>
</div>
Jquery для того же:
function changeCss (aid) {// alert (aid);
jQuery("#menu a").removeClass("selectedTab");
jQuery("#menu a").addClass("tab");
jQuery("#"+ aid).removeClass("tab");
jQuery("#" + aid).addClass("selectedTab");
}
Классы Css для меню:
a.selectedTab:hover,
.studioTopNavigationPanel
.contentSection
.navigationBox a
.selectedTab:active
{
background-color: #B8D9ED;
background-image: url("../images/tab_selected_bg.png");
background-position: center top;
background-repeat: repeat-x;
color: #333333;
cursor: pointer;
display: block;
float: left;
font-size: 14px;
margin-right: 3px;
padding: 5px 12px;
text-decoration: none;
}
.studioTopNavigationPanel .contentSection .navigationBox a.tab,
.studioTopNavigationPanel .contentSection .navigationBox a.tab:visited,
.studioTopNavigationPanel .contentSection .navigationBox a.tab:hover,
.studioTopNavigationPanel .contentSection .navigationBox a.tab:active
{
background-color: #ECF3F7;
background-image: url("../images/tab_bg.png");
background-position: center top;
background-repeat: repeat-x;
color: #333333;
cursor: pointer;
display: block;
float: left;
font-size: 14px;
margin-right: 3px;
padding: 5px 12px;
text-decoration: none;
}
.studioTopNavigationPanel .contentSection .navigationBox a.selectedTab,
.studioTopNavigationPanel .contentSection .navigationBox a.selectedTab:visited,
.studioTopNavigationPanel .contentSection .navigationBox a.selectedTab:hover,
.studioTopNavigationPanel .contentSection .navigationBox a.selectedTab:active
{
background-color: #B8D9ED;
background-image: url("../images/tab_selected_bg.png");
background-position: center top;
background-repeat: repeat-x;
color: #333333;
cursor: pointer;
display: block;
float: left;
font-size: 14px;
margin-right: 3px;
padding: 5px 12px;
text-decoration: none;
}
Ниже находится мой файл iles.xml. У меня есть 1 модуль под названием проект, и файл tile.xml содержит конфигурацию для меню.
<tiles-definitions>
<definition name="baseLayout" template="/WEB-INF/tiles/baseLayout.jsp">
<put-attribute name="title" value="Template"/>
<put-attribute name="header" value="/WEB-INF/tiles/header.jsp"/>
<put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/tiles/body.jsp"/>
<put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp"/>
</definition>
<!-- Project Controllers request navigations of jsps -->
<definition name="dashboard" extends="baseLayout">
<put-attribute name="title" value="Dashboard"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/dashboard.jsp"/>
</definition>
<definition name="projectsnew" extends="baseLayout">
<put-attribute name="title" value="Dashboard"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/projectsnew.jsp"/>
</definition>
<definition name="createproject" extends="baseLayout">
<put-attribute name="title" value="Dashboard"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/createproject.jsp"/>
</definition>
<definition name="projectsInfo" extends="baseLayout">
<put-attribute name="title" value="Project Info"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/projectinfomenu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/projectsInfo.jsp"/>
</definition>
<definition name="editprojects" extends="baseLayout">
<put-attribute name="title" value="Edit Projects"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/editprojects.jsp"/>
</definition>
<definition name="milestones" extends="baseLayout">
<put-attribute name="title" value="Edit Projects"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/milestones.jsp"/>
</definition>
<definition name="tasks" extends="baseLayout">
<put-attribute name="title" value="Edit Projects"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/tasks.jsp"/>
</definition>
<definition name="discussion" extends="baseLayout">
<put-attribute name="title" value="Edit Projects"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/discussions.jsp"/>
</definition>
<definition name="newdiscussion" extends="baseLayout">
<put-attribute name="title" value="Edit Projects"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/newdiscussion.jsp"/>
</definition>
<definition name="reports" extends="baseLayout">
<put-attribute name="title" value="Edit Projects"/>
<put-attribute name="menu" value="/WEB-INF/jsp/projectsjsp/menu.jsp"/>
<put-attribute name="body" value="/WEB-INF/jsp/projectsjsp/reports.jsp"/>
</definition>
</tiles-definitions>
Пожалуйста, расскажите, где я не прав, и предоставьте соответствующее решение для того же как можно скорее.