Пожалуйста, отправьте код, который относится к этой проблеме. Таким образом, люди здесь могут реагировать быстрее и лучше, не копаясь в вашем сайте, чтобы выяснить, что актуально.
В любом случае, вот простая альтернатива тому, что вы пытаетесь сделать:
HTML
<div id="navigation">
<a id="foo" href="#"> </a>
<a id="bar" href="#"> </a>
<a id="baz" href="#"> </a>
</div>
CSS
a#foo {
background: url('foo-inactive.png') no-repeat;
}
a#foo:hover,
a#foo.active {
background: url('foo-active.png') no-repeat;
}
Это дает вам эффект наведения. Сделайте то же самое для других идентификаторов. Добавьте отступы, чтобы ссылка была достаточно широкой, чтобы изображение отображалось на заднем плане. Или используйте атрибуты display="block"
и width / height.
Теперь, когда кто-то нажимает на изображение, присвойте ему класс active
, который с точки зрения CSS делает то же самое, что и эффект :hover
. Если щелкнув по изображению, вы попадете на другую страницу, просто добавьте его в HTML (<a id="foo" class="active"...
), если вы остаетесь на той же странице, сделайте что-то вроде этого:
JQuery
$(document).ready(function() {
// target each link in the navigation div
$('#navigation a').click(function() {
// link that you clicked
clicked = $(this).attr('id');
// make sure that all the others are not active
// except for the clicked one
$('#navigation a').each(function() {
if ($(this).attr('id') == clicked) {
$(this).addClass('active');
} else {
$(this).removeClass('active');
}
});
// prevent the default link action
return false;
});
});