- Используйте библиотеку шаблонов, такую как
Шаблоны jQuery вместо встраивания
HTML.
- Вместо использования URL "javascript:" присоединяйте обработчики событий к сгенерированным фрагментам DOM.
- Не используйте встроенные стили.
Что-то вроде:
$('#linkDiv')
.empty()
.append($.tmpl(myTemplate, {
makeId: makeId,
makeName: makeName,
categoryId: categoryId
}))
.click(function () {
var makeId = $(this).attr("data-makeId");
if (makeId) {
expandMake(makeId, $(this).attr("data-categoryId"));
}
});
Где myTemplate имеет содержимое:
<a href="#" data-makeId="${makeId}" data-categoryId="${categoryId}">${makeName}</a>
<div class="models" data-makeId="${makeId}"></div>
Вместо использования встроенного стиля для первоначального скрытия моделей, спрячьте их всех с помощью общего правила CSS, а затем выборочно отобразите их с классом:
.models { display: none }
.models.shown { display: block }
Просто добавьте класс «показанные», чтобы показать определенный блок моделей.