Я использую плитки Spring 3.0 +. Я создал общее меню с привязным тегом для всех страниц и применил CSS для этого же. Я использую Jquery для динамического изменения класса css для меню при нажатии на меню.Dynamic css не применяется в моем меню (плитки + весна 3.0)
Когда выбрано меню/ссылка, применяется класс CSS «selectedTab», и для всех обычных ссылок «вкладка» применяется класс css. Я столкнулся с проблемой, что при каждом запросе/щелчке по меню применяется класс стиля, а затем после ответа он снова не используется. То есть стиль остается применимым между запросом и ответом. Но не после ответа. Код для ссылок меню как в соответствии с:
<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 для то же самое:
функция changeCss (помощь) { // предупреждение (помощь);
jQuery("#menu a").removeClass("selectedTab");
jQuery("#menu a").addClass("tab");
jQuery("#"+ aid).removeClass("tab");
jQuery("#" + aid).addClass("selectedTab");
}
Классы CSS для меню являются:
a.selectedTab: парить, .studioTopNavigationPanel .contentSection .navigationBox в .selectedTab: активный { background- цвет: # B8D9ED; background-image: url ("../ images/tab_selected_bg.png"); background-position: center top; background-repeat: repeat-x; цвет: # 333333; курсор: указатель; дисплей: блок; float: слева; Размер шрифта: 14 пикселей; margin-right: 3px; обивка: 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;
}
Пожалуйста, скажите, где я не прав, и обеспечить соответствующее решение для того же, как можно скорее.
Вы спрашиваете, почему использование JavaScript в стиле вашего меню работает только для текущего запроса, а не на новой странице? – Quaternion
Да, с плитками, когда я нажимаю на меню, загружается вся запрошенная страница, которая даже загружает menu.jsp. Таким образом, между запросом и ответом эффект применяется, но не после отображения запрашиваемой страницы. –
Когда вы нажимаете клавишу f5, страница перезагружается (новый запрос), и ваши программы для JavaScript начинаются с нуля. То же самое для каждого нового запроса, возможно, обойти это можно, используя постоянство на стороне клиента, но с несколькими окнами браузера (что-то будет делать много пользователей, будут неприятные отягчающие побочные эффекты). Вам необходимо решить проблему с сервером. Но решение JS на стороне клиента не особенно велико. Когда вы создаете HTML, вы можете просто поместить «выбранный» класс html в элемент ... затем, используя JS, вы можете сделать что-то разумное. – Quaternion