Добавьте класс к переключателям
У меня есть переключатель на странице просмотра продукта в пользовательских параметрах, он содержит Скрытие и отображение. Есть ли способ добавить класс для каждого параметра? Мне нужно скрыть все, что находится под этим полем, когда установлено значение Скрыть, и отобразить при выборе Показать. Я пытаюсь использовать это, но это работает только для скрытия.
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>';
}
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();
})