Переключение значений select в зависимости от значения класса div
Здравствуйте, затрудняюсь реализовать сам. Прошу вашей помощи.
Есть два блока div: <li id="flag1" class="btn"> <div class="iradio checked"></div> </li> <li id="flag2" class="btn"> <div class="iradio"></div> </li> в которых попеременно происходит обмен значений классов div: .iradio.checked и .iradio Нужно как то отслеживать этот обмен классами и скриптом присваивать значение полю select - Стандарт или Информ. Код меню ниже: <select class='k_select' id='k_input_field_30_4700' value='Стандарт' > <option value=''></option> <option selected value='Стандарт'>Стандарт</option> <option value='Информ'>Информ</option> </select> |
Цитата:
|
Это ссылка на скрипт, вставляется в шапку:
<script src='//yagool.ru/blurb/icheck.js'></script> Сам html код: <li id="flag1" class="btn"> <div class="iradio checked"></div> </li> <li id="flag2" class="btn"> <div class="iradio"></div> </li> <select class='k_select' id='k_input_field_30_4700' value='Стандарт' > <option value=''></option> <option selected value='Стандарт'>Стандарт</option> <option value='Информ'>Информ</option> </select> Скрипт обработчик: <script>$(document).ready(function(){$(".pricePlans input").each(function(){var a=$(this),b=a.next(),c=b.text();b.remove();a.iCheck({radioClass:"iradio",insert:'<div class="icheck-icon"></div>'+c})})});</script> |
golopogos,
пока информации нуль - если вы используите плагин https://github.com/fronteed/iCheck - читайте документацию там всё есть -- а пока вы демонстрируите куски кода никак несвязанные с друг другом -- сделайте макет тут или в песочнице. |
Ну а если откинуть все скрипты и т.д. И взять за основу первый пост?..
|
golopogos,
так сам там класс то появится то исчезнет? |
golopogos,
:cray: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script src="http://fronteed.com/iCheck/icheck.js?v=1.0.1"></script> <link rel="stylesheet" type="text/css" href="http://fronteed.com/iCheck/demo/css/normalize.css"> <style type="text/css"> /* green */ .iradio_flat-green { display: inline-block; *display: inline; vertical-align: middle; margin: 0; padding: 0; width: 20px; height: 20px; background: url(http://fronteed.com/iCheck/skins/square/green.png) no-repeat; border: none; cursor: pointer; } .iradio_flat-green { background-position: -0px 0; } .iradio_flat-green.checked { background-position: -48px 0; } .iradio_flat-green.disabled { background-position: -132px 0; cursor: default; } .iradio_flat-green.checked.disabled { background-position: -154px 0; } </style> </head> <body> <label for="baz[1]">Стандарт</label> <input type="radio" name="quux[2]" id="baz[1]" checked data-info="Стандарт"> <label for="baz[2]">Информ</label> <input type="radio" name="quux[2]" id="baz[2]" data-info="Информ"> <select class='k_select' id='k_input_field_30_4700' value='Стандарт' > <option value=''></option> <option selected value='Стандарт'>Стандарт</option> <option value='Информ'>Информ</option> </select> <script> $('input').iCheck({radioClass: "iradio_flat-green"}); $('input').on('ifChecked', function(event) { $('#k_input_field_30_4700').val($(this).data('info')); } ); </script> </body> </html> |
|
golopogos,
а где там код из 7 поста? |
Большое Вам спасибо, но представленный Вами код не совсем подходит. И как его приспособить - ума не приложу) Макет на Фидле - это то что необходимо подправить. Выложил для наглядности. Функцию чекбоксов выполняют панели выбора тарифа.
|
golopogos,
1. выбор checked инпутов и selected селекта должны совпадать изначально строки 221 и 251 2. лучше пописать data инпуте чтоб не искать в h2 значение или прописать value в самих инпутах тогда тогда строка 195 будет $('#k_input_field_30_4700').val(this.value); 3. если таких блоков много сами пропишите путь до ближайшего селекта вместо $('#k_input_field_30_4700'). строка 195 4 не грузите jquery несколько раз -- если выбрали в jsfiddle версию -- зачем грузить ещё свою -- также и на сайте одна версия и желательно новее, но это по желанию и работоспособности. <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title> - jsFiddle demo</title> <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script> <script src="http://fronteed.com/iCheck/icheck.js?v=1.0.1"></script> <style type='text/css'> div #plans,div #plans ul,div #plans ul li { margin: 0; padding: 0; list-style: none; } div.pricePlans:after { content: ''; display: table; clear: both; } div.pricePlans { font-family: 'Open Sans', sans-serif; zoom: 1; } div.pricePlans { max-width: 600px; margin: 0 auto; padding-left: 15px; } div.pricePlans #plans .plan { background: #fff; float: left; width: 280px; text-align: center; border-radius: 5px; margin: 0 10px 10px 0; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.1); box-shadow: 0 0 10px rgba(0,0,0,0.5); } .planContainer .title h2 { font-size: 1.8em; font-weight: 300; color: #3e4f6a; margin: 0; padding: .4em 0; } .planContainer .title h2.bestPlanTitle { background: #3e4f6a; background: -webkit-linear-gradient(top, #475975, #364761); background: -moz-linear-gradient(top, #475975, #364761); background: -o-linear-gradient(top, #475975, #364761); background: -ms-linear-gradient(top, #475975, #364761); background: linear-gradient(top, #475975, #364761); color: #fff; border-radius: 5px 5px 0 0; } .planContainer .price p { background: #3e4f6a !important; background: -webkit-linear-gradient(top, #475975, #364761); background: -moz-linear-gradient(top, #475975, #364761); background: -o-linear-gradient(top, #475975, #364761); background: -ms-linear-gradient(top, #475975, #364761); background: linear-gradient(top, #475975, #364761); color: #fff !important; font-size: 1.2em !important; font-weight: 700 !important; height: 2.2em !important; line-height: 2.0em !important; width: 257px !important; margin-left: 0 !important; padding: 4px; } .planContainer .price p.bestPlanPrice { background: #f7814d !important; } .planContainer .price p span { color: #8394ae !important; } .planContainer .options { margin-top: 4em !important; } .planContainer .options li { font-weight: 700 !important; color: #364762 !important; line-height: 2.0em !important; } .planContainer .options li span { font-weight: 600; font-size: 18px; color: #a00202; text-transform: uppercase; text-decoration: none; letter-spacing: 3px; line-height: 2.8em; display: inline-block; } .planContainer .btn a { text-transform: uppercase; text-decoration: none; color: #3e4f6a; font-weight: 700; letter-spacing: 3px; line-height: 2.8em; border: 2px solid #3e4f6a; display: inline-block; width: 250px; height: 2.4em; border-radius: 4px; margin: 1.5em 0 1.8em; } .planContainer .btn a.bestPlanButton { color: #fff; background: #f7814d; border: 2px solid #f7814d; } /* iCheck plugin Line skin, blue ----------------------------------- */ .iradio { position: relative; display: block; width: 80%; height: 2.8em; margin: 1.5em 0 1.8em; text-transform: uppercase; text-decoration: none; color: #3e4f6a; font-weight: 700; letter-spacing: 3px; line-height: 2.8em; display: inline-block; border: 2px solid #3e4f6a; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 4px; cursor: pointer; } .iradio .icheck-icon { position: absolute; top: 50%; left: 13px; width: 13px; height: 11px; margin: -5px 0 0 0; padding: 0; overflow: hidden; } .iradio.hover { color: #f7804d; border: 2px solid #f7804d; } .iradio.checked { background: #f7804d; color: #ffffff; border: none; } .iradio.checked .icheck-icon { background-position: -15px 0; } .iradio.disabled { background: #ADD7F0; cursor: default; } .iradio.disabled .icheck-icon { background-position: -30px 0; } .iradio.checked.disabled { background: #ADD7F0; } .iradio.checked.disabled .icheck-icon { background-position: -45px 0; } </style> <script type='text/javascript'> $(window).load(function(){ $(document).ready(function(){$(".pricePlans input").each(function(){var a=$(this),b=a.next(),c=b.text();b.remove();a.iCheck({radioClass:"iradio",insert:''+c}) a.on('ifChecked', function(event) { $('#k_input_field_30_4700').val($('h2',$(this).parents('.planContainer')).text()); } ) })}); }); </script> </head> <body> <div class="pricePlans"> <ul id="plans"> <li class="plan"> <ul class="planContainer"> <li class="title"><h2>Стандарт</h2></li> <li class="price"><p>3'000 / месяц</p></li> <li> <ul class="options"> <li>Добавление в базу <span>+</span></li> <li>СМС-рассылок <span>0</span></li> </ul> </li> <li id="flag1" class="btn"> <input id="tarif" name="iCheck" type="radio" checked> <a class="bestPlanButton" href="#"><label>Мой выбор</label></a> </li> </ul> </li> <li class="plan"> <ul class="planContainer"> <li class="title"><h2 class="bestPlanTitle">Информ</h2></li> <li class="price"><p class="bestPlanPrice">5'000 / месяц</p></li> <li> <ul class="options"> <li>Добавление в базу <span>+</span></li> <li>СМС-рассылок <span>1</span></li> </ul> </li> <li id="flag2" class="btn"> <input id="tarif" name="iCheck" type="radio" > <a class="bestPlanButton" href="#"><label>Мой выбор</label></a> </li> </ul> </li> </ul> </div> <select class='k_select' id='k_input_field_30_4700' value='Стандарт' > <!-- Поле после отладки поле будет скрыто --> <option value=''></option> <option selected value='Стандарт'>Стандарт</option> <option value='Информ'>Информ</option> </select> </body> </html> |
Вы гений!) Спасибо Вам огромное!..
|
Часовой пояс GMT +3, время: 19:19. |