Начните с получения идентификаторов категорий, чтобы мы могли создавать кнопки соответствующим образом (Если вы создаете кнопки на стороне сервера, просто пропустите первый шаг и сделайте это на стороне сервера.)
Итак, мы дадим категории div класс, подобный этому
<div id="category-1" class="category-class"></div>
Затем каждый элемент div получает свой идентификатор, сохраненный в массиве
var categories = [];
$(".category-class").each(function(i) {
categories[i] = $(this).attr("id").replace("category-", "");
});
Теперь, когда у нас есть все идентификаторы категорий и мы знаем, сколько их, давайте создадим кнопки динамически
$.each(categories, function(i) {
// append buttons with the same id number as the category divs
$("#someDiv").append("<a id='button_"+categories[i]+"' href='/something' class='toggle-button'>button "+i+"</a>");
});
$(".toggle-button").live("click", function (event) {
//prevent propagation
event.preventDefault();
// get the matching id
var id = $(this).attr("id").replace("button_", "");
// toggle the div with the same id as the button
$("#category-"+id").toggle();
});
Я не пробовал код, поэтому не знаю, правильный ли синтаксис на 100%, но я надеюсь, вы поняли!
Мы просто перебираем каждый элемент div категории, у которого теперь есть класс, и мы извлекаем идентификаторы из массива. Теперь мы строим кнопки в соответствии с категорией div с соответствующим идентификатором.
Затем мы создаем оперативный обработчик для события click, поэтому, когда кто-то нажимает кнопку, мы извлекаем из нее идентификатор, который соответствует категории div, и переключаем div с соответствующим идентификатором.
Удачи!