Триггер нажмите на другую опцию - настраиваемые образцы на странице продукта


Я использую тему 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.

Кто-нибудь знает, как решить эту проблему?

Author: Manashvi Birla, 2015-07-14

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, потому что пользователи могут нажимать на один и тот же вариант образца (с другим именем и визуально другим вариантом).

Таким образом, с этим кодом все остальное остается прежним, просто другой элемент при нажатии связан с предыдущим.

 0
Author: anitr, 2015-07-15 07:18:00