Чтобы ответить на ваш вопрос:
Когда событие запускается (нажмите на ссылку), вам нужно предотвратить поведение по умолчанию и продолжить как обычно. Означает, что вам нужно обработать событие в каждой функции и вызвать event.preventDefault (). Таким образом, хештег не будет добавлен.
Одна из ваших функций будет выглядеть так:
$zproducthide(".all").click(function (event) {
event.preventDefault(); // no hashtag please
if ($current != 'all'){
$zproducthide(".windows").hide();
$zproducthide(".macintosh").hide();
$zproducthide(".windows").fadeIn(1500);
$zproducthide(".macintosh").fadeIn(1500);
$current = 'all';
}
});
кроме этого, вот несколько предложений:
1: поскольку вы используете JS для отображения / скрытия элементов, вы можете избавиться от a-тегов и использовать все, что вам нравится, и добавить к нему триггер, например, Кнопки
<button class="all" href="#">All Products</button>
<button class="windows" href="#">Windows</button>
<button class="macintosh" href="#">Macintosh</button>
2: добавьте больше метаинформации, которая поможет вам позже (например, все 7 предметов - это какой-то товар, верно?)
<div class="prod windows">1 win</div>
<div class="prod macintosh">2 mac</div>
3: объедините триггер для всех трех кнопок и используйте новый класс
$("button").click(function(event) {
event.preventDefault();
prod = $(this).attr('class');
if(prod!="all") {
// mac,win
$(".prod")
.hide() // hide all elements
.filter("."+prod) // filter win/mac
.fadeIn(1500); // show those
} else {
// all
$(".prod")
.hide()
.fadeIn(1500);
}
});