Нестандартный вывод msOptions
Подскажите как сделать выбор «размера» «цвета» в таком виде как на скрине clip2net.com/s/71wzlj, а не в стандартном выпадающем selecte…
Комментарии: 10
стандартный то чем не угодил? стилизуй с помощью css…
типа такого — jsbin.com/zitagogo/1/
пардон… не так понял) Выше не то
вызов на странице продукта —
пример тут — s5351.test.modx.pro/index.php?id=6
p.s. стилизуем на свой вкус)
[[!msOptions?
&tplRow=`tpl.msOptions.row.my`
&tplOuter=`tpl.msOptions.outer.my`
&name=`size`
]]
<span style="display:none">[[!msOptions?name=`size`]]</span>
чанки — tpl.msOptions.outer.my<div class="select">
[[+rows]]
</div>
<script>
function select(element) {
var value = element.getAttribute("data-value");
var nodes = element.parentNode.childNodes;
for (var i = 0; i < nodes.length; i++) {
if (nodes[i] instanceof HTMLParagraphElement) {
if (value == nodes[i].getAttribute("data-value")) nodes[i].className = "active";
else nodes[i].className = "";
}
}
$(document.getElementsByName("options[size]")).find("option[value="+ value +"]").attr("selected","selected")
}
</script>
чанк — tpl.msOptions.row.my<p data-value="[[+value]]" onclick="select(this)" class="">[[+value]]</p>
велосипед конечно, но едет)))пример тут — s5351.test.modx.pro/index.php?id=6
p.s. стилизуем на свой вкус)
если уже подключен Jquery, зачем говнокодить на чистом Javascript ?? это такая каша…
ну если вы умеете, то возьмите и напишите…
Как смог так помог.
Как смог так помог.
function select(element) {
if($(element).hasClass('active')){
$(element).removeClass('active');
$("select[name='options[size]']").find('option').removeAttr('selected')
} else {
var value = $(element).data("value");
$(element).siblings().removeClass('active');
$(element).addClass('active');
$("select[name='options[size]']").find('option').removeAttr('selected')
$("select[name='options[size]']").find("option[value="+ value +"]").attr("selected","selected")
}
}
тоже не панацея :), вообще у jquery есть одно преимущество, если вы не задрот, он точно будет работать во всех браузерах без лишних телодвижений. select[name='options[size]'] — только одна опция может быть выбрана?
еще добавил toggle
P.S. можно на ты
ну во) другое дело…
можно несколько опций —
можно несколько опций —
<div class="select">
[[+rows]]
</div>
<script>
function select(element) {
if($(element).hasClass('active')){
$(element).removeClass('active');
$("select[name='options[[[+name]]]']").find('option').removeAttr('selected')
} else {
var value = $(element).data("value");
$(element).siblings().removeClass('active');
$(element).addClass('active');
$("select[name='options[[[+name]]]']").find('option').removeAttr('selected')
$("select[name='options[[[+name]]]']").find("option[value="+ value +"]").attr("selected","selected")
}
}
</script>
Помогите, пожалуйста, вывести опции товара msProductOptions выпадающим списком, как msOptions
Спасибо больше, все получилось!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.