Триггер нажмите на другую опцию - настраиваемые образцы на странице продукта
Я использую тему Magento rwd в своем настраиваемом продукте. Мне нужен один простой продукт, но два варианта на интерфейсном файле template/configurableswatches/catalog/product/view/type/options/configurable/swatches.phtml
Я использую этот код в foreach:
<li class="option-<?php echo $_optionCode; ?><?php echo $_liClass; ?> white" id="option<?php echo $_option->id; ?>">
<a href="javascript:void(0)" name="<?php echo $_optionCode; ?>" id="swatch<?php echo $_option->id; ?>" class="<?php echo $_aClass ?>" title="<?php echo $_option->label; ?>"
style="height: <?php echo $_swatchInnerHeight ?>px; <?php if (!$_hasImage): ?>min-<?php endif; ?>width: <?php echo $_swatchInnerWidth ?>px;">
<span class="swatch-label" style="height: <?php echo $_swatchInnerHeight ?>px; width: <?php echo $_swatchInnerWidth ?>px;">
<?php if ($_hasImage): ?>
<img src="<?php echo $_swatchUrl; ?>" alt="<?php echo $_option->label; ?>" width="<?php echo $_swatchInnerWidth ?>" height="<?php echo $_swatchInnerHeight ?>" />
<?php else: ?>
<?php echo $this->__('white on') . ' ' . $_option->label; ?>
<?php endif; ?>
</span>
</a>
</li>
<li class="option-<?php echo $_optionCode; ?><?php echo $_liClass; ?> black" id="option<?php echo $_option->id; ?>">
<a href="javascript:void(0)" name="" id="" class="<?php echo $_aClass ?>" title="<?php echo $_option->label; ?>"
style="height: <?php echo $_swatchInnerHeight ?>px; <?php if (!$_hasImage): ?>min-<?php endif; ?>width: <?php echo $_swatchInnerWidth ?>px;">
<span class="swatch-label" style="height: <?php echo $_swatchInnerHeight ?>px; width: <?php echo $_swatchInnerWidth ?>px;">
<?php if ($_hasImage): ?>
<img src="<?php echo $_swatchUrl; ?>" alt="<?php echo $_option->label; ?>" width="<?php echo $_swatchInnerWidth ?>" height="<?php echo $_swatchInnerHeight ?>" />
<?php else: ?>
<?php echo $this->__('black on') . ' ' . $_option->label; ?>
<?php endif; ?>
</span>
</a>
</li>
Мне нужно, чтобы опция 1 была выбрана также, когда пользователь нажимает на опцию 2. Я попытался использовать Product.ConfigurableSwatches.prototype.onOptionClick(attr);
по щелчку, но я не знаю, что ввести в параметр attr
.
Кто-нибудь знает, как решить эту проблему?
1 answers
Я нашел решение - если кто-нибудь сочтет его полезным в будущем:
На skin/frontend/rwd/my_name/js/configurableswatches/swatches-product.js
есть функция setOptData
, в которую я вставил свой параметр, точно так же, как opt._e.a = $('swatch'+opt.id);
, я добавил opt._e.b = $('my_el');
и повторил это с помощью функции attachOptEvents
на opt._e.a.observe('click', function(event)
, где я добавил opt._e.b.observe('click', function(event)
.
Кроме того, мне пришлось удалить if (opt != attr._e._last.selectedOption)
в функции onOptionClick
, потому что пользователи могут нажимать на один и тот же вариант образца (с другим именем и визуально другим вариантом).
Таким образом, с этим кодом все остальное остается прежним, просто другой элемент при нажатии связан с предыдущим.