02.11.2015, 02:28
|
Аспирант
|
|
Регистрация: 26.10.2015
Сообщений: 97
|
|
оказать скрытые элементы с определенным классом
Всем привет
радиокнопкой с id r1 показываются скрытые элементы с классом field
if ($('[id="r1"]:checked').val()) {
$(".field").slideDown(500);
}
как можно перечислить id радиокнопок, по которым будут показываться скрытые элементы с классом field
так не получается
if ($('[id="r1", id="r2"]:checked').val()) {
|
|
02.11.2015, 02:37
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
rodiony4,
может html сделать для примера?
|
|
02.11.2015, 03:02
|
Аспирант
|
|
Регистрация: 26.10.2015
Сообщений: 97
|
|
рони,
<input type="radio" name="name_of_button" value=1 id="r1">скрываем div1, div2, div3<br>
<input type="radio" name="name_of_button" value=2 id="r2">скрываем div1, div2<br>
<input type="radio" name="name_of_button" value=3 id="r3"><br>
<input type="radio" name="name_of_button" value=4 id="r4"><br>
<div id="div1" class="field">div1</div>
<div id="div2" class="field">div2</div>
<div id="div3" class="field">div3</div>
<div id="div4" class="field">div4</div>
<div id="div5" class="field">div5</div>
<script type="text/javascript">
$("input").click(function(){
if ($('input[id="r1"]:checked').val()) {
$("#div1, #div2, #div3").slideUp(500);
}
if ($('input[id="r2"]:checked').val()) {
$("#div1, #div2").slideUp(500);
$("#div3").slideDown(500);
}
if ($('input[id="r3, id="r4"]:checked').val()) {// ?????
$(".field").slideDown(500);
}
});
</script>
|
|
02.11.2015, 03:11
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
Открывашка 232
rodiony4,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
var s = $('[name="name_of_button"]');
s.click(function() {
$(".field").not($({r1 : "#div1, #div2, #div3", r2 : "#div1, #div2"}[this.id]).slideUp(500)).slideDown(500);
});
});
</script>
</head>
<body>
<input type="radio" name="name_of_button" value=1 id="r1">скрываем div1, div2, div3<br>
<input type="radio" name="name_of_button" value=2 id="r2">скрываем div1, div2<br>
<input type="radio" name="name_of_button" value=3 id="r3"><br>
<input type="radio" name="name_of_button" value=4 id="r4"><br>
<div id="div1" class="field">div1</div>
<div id="div2" class="field">div2</div>
<div id="div3" class="field">div3</div>
<div id="div4" class="field">div4</div>
<div id="div5" class="field">div5</div>
</body>
</html>
Последний раз редактировалось рони, 02.11.2015 в 09:19.
|
|
02.11.2015, 03:29
|
Аспирант
|
|
Регистрация: 26.10.2015
Сообщений: 97
|
|
рони, спасибо, работает, но первый раз по клику (r1 или r2) дивы скрываются, а после второго раза - сначала открываются все дивы, а потом уже скрываются нужные
|
|
02.11.2015, 07:28
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
rodiony4,
изменил смотрите снова
|
|
02.11.2015, 16:51
|
Аспирант
|
|
Регистрация: 26.10.2015
Сообщений: 97
|
|
рони, да, теперь все супер, спасибо!
Но еще одна проблема - на сайте дивы начинают скрываться только со второго раза (нажал одну радиокнопку - дивы не скрываются, нажал другую радиокнопку - дивы скрылись, далее все стабильно)
дело в том, что ваш код размещен в другой функции, вот как все выглядит на сайте:
function changeTextOnePage3(op_textinclship, op_currency, op_ordertotal)
{
op_hidePayments();
changeTextOnePage(op_textinclship, op_currency, op_ordertotal);
var jQnoC6 = jQuery.noConflict();
var s = jQnoC6('[name="shipping_rate_id"]');
s.click(function() {
jQnoC6(".formField, .formLabel").not(jQnoC6({hashd5561dda4545a69195256a8ee62fcc91 : "#vm_myadres_div, #vm_myadres_input, #vm_pasport_div, #vm_pasport_input, #infoTK", hasha917f3643fcc7141bc83f55fb83a6c62 : "#vm_pasport_div, #vm_pasport_input, #infoTK"}[this.id]).slideUp(500)).slideDown(500);
});
}
скорей всего мешает функция
s.click(function() {
заменял ее на
jQnoC6("input").click(function(){
но все равно - дивы начинают скрываться со второго раза
могу дать ссылку на страницу сайта
|
|
02.11.2015, 18:56
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
rodiony4,
а какой смысл ставить код в функцию changeTextOnePage3 ?
пока не сработает эта функция кликать бесполезно
если функция срабатывает несколько раз -- она просто убивает код -- каждый второй раз.
|
|
02.11.2015, 19:15
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
rodiony4,
заменить в коде выше 4 пост все $ на jQuery и добавить свои идентификаторы и ставьте в любое место.
|
|
02.11.2015, 20:00
|
Аспирант
|
|
Регистрация: 26.10.2015
Сообщений: 97
|
|
Сообщение от рони
|
rodiony4,
заменить в коде выше 4 пост все $ на jQuery и добавить свои идентификаторы и ставьте в любое место.
|
попробовал, не работает
Сообщение от рони
|
rodiony4,
а какой смысл ставить код в функцию changeTextOnePage3 ?
|
если ставить код вне этой функции - ничего работать не будет (пробовал, и не один я)
код, который я привел в начале темы, в этой функции работает
function changeTextOnePage3(op_textinclship, op_currency, op_ordertotal)
{
op_hidePayments();
changeTextOnePage(op_textinclship, op_currency, op_ordertotal);
var jQnoC6 = jQuery.noConflict();
if (jQnoC6("input:checked").val() == "1") {
jQnoC6("#vm_myadres_div, #vm_myadres_input, #vm_pasport_div, #vm_pasport_input, #infoTK").slideUp(500);
}
if (jQnoC6("input:checked").val() == "2") {
jQnoC6("#vm_pasport_div, #vm_pasport_input, #infoTK").slideUp(500);
jQnoC6("#vm_myadres_div, #vm_myadres_input").slideDown(500);
}
if (jQnoC6("input:checked").val() == "3") {
jQnoC6(".formField, .formLabel").slideDown(500);
}
}
если его обернуть функцией - не работает
$("input").click(function(){
......
});
но ваш код проще и короче, может можно его подшаманить, чтобы он корректно работал? Например, как то обойтись без click(function() {
|
|
|
|