Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Javascript в файле category.tpl


Recommended Posts

Здравствуйте, помогите разобраться с куском javascript кода в файле ../../template/product/category.tpl

Предназначен он для замены стилей (насколько я понял) когда выбираем вид отображения(сетка/витрина) каталога с товарами.

Вот сам код:

function display(view) {
if (view == 'list') {
  $('.product-grid').attr('class', 'product-list');
  $('.product-list > div').each(function(index, element) {
   html  = '<div class="right">';
   html += '  <div class="cart">' + $(element).find('.cart').html() + '</div>';
   html += '  <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
   html += '  <div class="compare">' + $(element).find('.compare').html() + '</div>';
   html += '</div>';
   html += '<div class="left">';
   var image = $(element).find('.image').html();
   if (image != null) {
	html += '<div class="image">' + image + '</div>';
   }
   var price = $(element).find('.price').html();
   if (price != null) {
	html += '<div class="price">' + price  + '</div>';
   }
   html += '  <div class="name">' + $(element).find('.name').html() + '</div>';
   html += '  <div class="description">' + $(element).find('.description').html() + '</div>';
   var rating = $(element).find('.rating').html();
   if (rating != null) {
	html += '<div class="rating">' + rating + '</div>';
   }
   html += '</div>';

   $(element).html(html);
  });
  $('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>');
  $.cookie('display', 'list');
} else {
  $('.product-list').attr('class', 'product-grid');
  $('.product-grid > div').each(function(index, element) {
   html = '';
   var image = $(element).find('.image').html();
   if (image != null) {
	html += '<div class="image">' + image + '</div>';
   }
   html += '<div class="name">' + $(element).find('.name').html() + '</div>';
   html += '<div class="description">' + $(element).find('.description').html() + '</div>';
   var price = $(element).find('.price').html();
   if (price != null) {
	html += '<div class="price">' + price  + '</div>';
   }
   var rating = $(element).find('.rating').html();
   if (rating != null) {
	html += '<div class="rating">' + rating + '</div>';
   }
   html += '<div class="cart">' + $(element).find('.cart').html() + '</div>';
   html += '<div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
   html += '<div class="compare">' + $(element).find('.compare').html() + '</div>';
   $(element).html(html);
  });
  $('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>');
  $.cookie('display', 'grid');
}
}
view = $.cookie('display');
if (view) {
display(view);
} else {
display('list');
}
//--></script>

Если возможно прокаментируйте в коде основные моменты.

Надіслати
Поділитися на інших сайтах


  • 6 months later...

Присоединяюсь к ТС... Попытался расширить набор дивов, в итоге изначально ничего не менялось. Когда добрался до это скрипта любые мои попытки вели к некорректной работе. Там два вида строк - с объявлением переменных и без. Какие за что отвечают и как собственно добавить нужный див например в режим "grid" ?

Надіслати
Поділитися на інших сайтах


Элементарцый же скрипт, из html выдираются данные (название, цена итд) и формируется другой вид списка товаров.

.each() ищет элементы списка, в элементах ищется, например, имя товара $(element).find('.name').html()

новая структура сбирается в переменную html и перезаписывает текущий $(element).html(html)

ИМХО метод - полное говно, тотже эффект можно получить одним переключением css класса без изменения DOM. Код становится проще, быстрее и понятнее.

  • +1 1
Надіслати
Поділитися на інших сайтах


dimmaq, спасибо за ответ. я все это понял изначально, но видимо мой вчерашний ночной мозг требовал перезагрузки и не переключился на частоту анализа. разобрался сейчас что к чему, после просмотра всего в кода в целом.
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.