Добавьте класс к переключателям


У меня есть переключатель на странице просмотра продукта в пользовательских параметрах, он содержит Скрытие и отображение. Есть ли способ добавить класс для каждого параметра? Мне нужно скрыть все, что находится под этим полем, когда установлено значение Скрыть, и отобразить при выборе Показать. Я пытаюсь использовать это, но это работает только для скрытия.

     jQuery('div:contains("Show")').on('click', function(){
       jQuery(this).closest('dd').siblings().show();
    });
     jQuery('div:contains("Hide")').on('click', function(){
       jQuery(this).closest('dd').siblings().hide();
    });

PHP-код для создания переключателей:

                       $selectHtml .= '<li><input type="radio" id="options_' . $_option->getId() . '" class="'
                            . $class . ' product-custom-option" name="options[' . $_option->getId() . ']"'
                            . ($this->getSkipJsReloadPrice() ? '' : ' onclick="opConfig.reloadPrice()"')
                            . ' value="" checked="checked" /><span class="label"><label for="options_'
                            . $_option->getId() . '">' . $this->__('None') . '</label></span></li>';
                    }
Author: Qaisar Satti, 2016-02-26

1 answers

Вариант 1

Вам нужно добавить пользовательское поле в свои пользовательские параметры и использовать его в своем интерфейсе.

Посмотрите здесь, чтобы понять, как добавить новое поле:

Http://magento.ikantam.com/qa/how-add-custom-attributes-custom-options

Затем вам нужно будет принять значение этого поля и использовать его для вашего css-класса в интерфейсе.

Опция 2

В соответствии с приведенным вами фрагментом и дополнительной информацией о вашем комментарии вы можете использовать подход JavaScript:

var showRadio = jQuery('.product-options .display ul li:nth-child(1)').find('input');
var hideRadio = jQuery('.product-options .display ul li:nth-child(2)').find('input');

hideRadio.click(function() {
  jQuery('.product-options dd, .product-options dt').hide();
  jQuery(this).parents('dd').show();
  jQuery(this).parents('dd').prevAll('dt:first').show();
})
showRadio.click(function() {
  jQuery('.product-options dd, .product-options dt').show();
})
 2
Author: Phoenix128_RiccardoT, 2016-02-26 22:18:47