Как поменять вид фильтра типа color или texture

Автор PeterS, 24 октября 2016, 13:48:51

« назад - далее »

PeterS

Вот файл blocklayered.js:

// Click on color
$('#layered_form input[type=button], #layered_form label.layered_color').live('click', function()
{
if (!$('input[name='+$(this).attr('name')+'][type=hidden]').length)
$('<input />').attr('type', 'hidden').attr('name', $(this).attr('name')).val($(this).data('rel')).appendTo('#layered_form');
else
$('input[name='+$(this).attr('name')+'][type=hidden]').remove();
reloadContent();
});

// Click on checkbox
$('#layered_form input[type=checkbox], #layered_form input[type=radio]').live('click', function()
{
reloadContent();
});


Вы думаете отрабатывает $('#layered_form input[type=button], #layered_form label.layered_color').live
но нет, у меня же больше нет input[type=button]
_________
Удаление вирусов и вредоносного кода с любых сайтов.

Adik

#16
В том то и дело, что нет input hidden где хранится выбранный фильтр цвета. Оставить нужно input hidden, посетитель его все равно не видит

PeterS

Неа, мне кажется не так.
Ладно, всё, сдаюсь.
_________
Удаление вирусов и вредоносного кода с любых сайтов.

Adik

При чем тут кажется? Код смотрите
{if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
если выбран фильтр то добавяляется input с name = layered_id_attribute_group_xx.
а в javascript уже берется значение этого поля
$('#layered_form input[type=hidden][name='+$(this).data('rel')+']')

PeterS

$('#layered_form input[type=hidden][name='+$(this).data('rel')+']')
Так это выполняется, для input типа button, а у меня checkbox, в котором только reloadContent()
_________
Удаление вирусов и вредоносного кода с любых сайтов.

mAgency

Цитата: mAgency от 24 октября 2016, 16:35:50
изменяете в blocklayered.tpl
{if isset($filter.is_color_group) && $filter.is_color_group}
<input class="checkbox color-option {if isset($value.checked) && $value.checked}on{/if} {if !$value.nbr}disable{/if}" type="checkbox" name="layered_{$filter.type_lite}_{$id_value}" data-rel="{$id_value}_{$filter.id_key}" id="layered_id_attribute_group_{$id_value}" {if !$value.nbr}disabled="disabled"{/if}  {if isset($value.checked) && $value.checked}checked="checked"{/if}/>
{if isset($value.checked) && $value.checked}<input type="hidden" name="layered_{$filter.type_lite}_{$id_value}" value="{$id_value}" />{/if}
{else}

и в blocklayered.js
// Click on color
$(document).on('click', '#layered_form input.color-option, #layered_form label.layered_color', function(e) {
...
$.each($(this).parent().parent().find('input.color-option'), function (it, item) {

Фильтры цвета показывает как чекбоксы.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

PeterS

А куда вставлять это:
$.each($(this).parent().parent().find('input.color-option'), function (it, item) {
_________
Удаление вирусов и вредоносного кода с любых сайтов.