Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
Dimka1judo
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
1

Скрыть все div в цикле do while, при нажатии на <a href>

09.08.2012, 09:17. Просмотров 2847. Ответов 16
Метки нет (Все метки)

При нажатии на ссылку скрывается и раскрывается только первый блок, а остальные ссылки и блоки не работают.

Это ссылка при нажатии на которую открывается div
PHP
1
echo "<div class='doctor_z_4'>" . "<a href='' id='fa'>" . $talon_time['date_talon'] . "\n" . substr($talon_time['time_talon_tima'],0,5) . " - " . "</a>" . "<p id='fa'>" .$talon_time['talon_status_text']  . "</p>" . "</div>";
Сам div
PHP
1
echo "<div id='block' style='display:none;'>";
повторюсь это всё находится в цикле do while
а вот и сам jquery
Javascript
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
$(document).ready (function() {
$('#fa').toggle(function() 
{
$('#block').show('drop', 2000);
}, function()
{
$('#block').hide('drop', 2000);
});
});
</script>
И работает ток первая функция в do, остальные как простые ссылки
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2012, 09:17
Ответы с готовыми решениями:

Скрыть div при нажатии на него
Помогите решить проблему. Я в JS никакой. Если кто знает, напишите код,...

Скрыть div при нажатии на кнопку
кто подскажет как скрыть div с кодом при нажатии на кнопку вместе с кнопкой...

Блок div скрыть/показать при нажатии на кнопку "показать все"
Добрый день. На странице:...

При нажатии на кнопку должно в цикле срабатывать волнообразное проявление областей div слево-направо, а затем
При нажатии на кнопку должно в цикле срабатывать волнообразное проявление...

Как скрыть все DIV кроме заданного ID при клике?
Здравствуйте, на странице есть меню-фильтр из ссылок вида: &lt;a...

16
Soldado
731 / 722 / 137
Регистрация: 28.06.2012
Сообщений: 1,318
Записей в блоге: 4
09.08.2012, 09:55 2
У вас все блоки имеют один и тот же id, а это индивидуальный идентификатор и он не может быть использован для группы элементов. По-этому jQuery берёт лишь первый блок, а остальные игнорирует.
Используйте class.
1
Dimka1judo
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
09.08.2012, 09:57  [ТС] 3
А можешь накидать примерно хотябы как будет время, а то я мучаюсь уже 2 дня с этим. Да я сделал вот как ещё теперь при клике на любую ссылку все блоки появляются
Javascript
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
$(document).ready (function() {
$('a#fa').toggle(function() 
{
$('div#block').show('drop', 2000);
}, function()
{
$('div#block').hide('drop', 2000);
});
});
</script>
А как дальше понятия не имею.
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
09.08.2012, 10:08 4
ну вы и накодили если чсн.

Используйте класс вместо id,

т.е.

HTML5
1
2
<div class="test">test 1</div>
<div class="test">test 2</div>
Javascript
1
$('.test').hide('drop',2000);
Один и тот-же класс может быть присвоен сразу нескольким элементам, но идентификатор может быть только один единственный и неповторимый, это же "идентификатор"!

Так что используя класс, а не идентификатор можно скрыть сразу несколько элементов!
1
Dimka1judo
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
09.08.2012, 10:30  [ТС] 5
Цитата Сообщение от AlienNation Посмотреть сообщение
Используйте класс вместо id,
Сказал как ты и написал вроде если всё верное понял
Javascript
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
$(document).ready (function() {
$('.fa').toggle(function() 
{
$('div.block').show('drop', 2000);
}, function()
{
$('div.block').hide('drop', 2000);
});
});
</script>
И получается я нажимаю на любую <a href> и у меня сразу все div появляются, иными словами сейчас всё работает ток надо мне чтобы появлялась то только 1 блок который принадлежит ссылке данной в цикле, как назвать активный получается
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
09.08.2012, 10:40 6
давайте так, вы приведете нормальный пример html, напр. вот как тут:

http://jsfiddle.net/Stasonix/TwjgD/1/

и скажете конкретно что вам нужно скрыть, а что появить и т.д.
1
Dimka1judo
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
09.08.2012, 11:04  [ТС] 7
Вот структура
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="doctor_z_4">
    <a href="#" class="fa"> Талон 1 </div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 1</div>
</div>
 
<div class="doctor_z_4">
    <a href="#" class="fa"> талон 2</div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 2</div>
</div>
...
<div class="doctor_z_4">
    <a href="#" class="fa"> талон 10</div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 10</div>
</div>
Вот js
Javascript
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
$(document).ready (function() {
$('.fa').toggle(function() 
{
$('div.block').show('drop', 2000);
}, function()
{
$('div.block').hide('drop', 2000);
});
});
</script>
Теперь что должно быть, изначально при загрузки страницы, должны быть только ссылки с надписями, талон 1 , талон 2 , талон 3 и тд. а div где время 1, время 2, время 3 быть скрытыми! (P.S.: это всё работает), далее при нажатии на ссылку "талон 1" под этой ссылкой, появляется div "время 1" все остальные div скрыты, при нажатии на ссылку "время 2" появлялся div с "время 2". Только вот надо так чтобы класс был у ссылок 1 и класс в div тоже у всех один и тот же. Ну вроде всё рассписал полностью.
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
09.08.2012, 11:22 8
разберитесь со стрктурой товарищ.

У вас явно верста невалидная, а если бы она была валидная, то все бы работало примерно так:

http://jsfiddle.net/Stasonix/TwjgD/2/

Оно?
1
Dimka1judo
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
09.08.2012, 14:54  [ТС] 9
Вот сайт ссылка прямая, по ходу не суждено сделать как я задумал http://kostdgb.kz/mysite/doctor_z.php?cat_z=1
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
09.08.2012, 15:59 10
Я вижу там только два блока, вроде оба работают, на будущее: http://validator.w3.org/, проверьте валидность вашей верстки, (16 ошибок).
1
Dimka1judo
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
09.08.2012, 16:05  [ТС] 11
Да работать то работает, только вот мне не нужно ведь чтобы я нажимал на любую ссылку и открывалось всё, а нужно чтобы только по ссылкой нажатой открывалось а остальное было скрыто
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
09.08.2012, 16:31 12
тогда так:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
<div class="talon_doc_center">
    <div class="doctor_z_3">
        Онлайн запись открыта
    </div>
    <div class="doctor_z_4"> 
 
        <!-- ВОТ ТУТ аттрибут rel="wednesday" добавлен к ссылке -->
        <a href="#" class="fa" rel="wednesday">Среда 15 Августа 08:00 - </a>
        <p>
            Свободный
        </p>
    </div>
    <div class="line">
    </div>
 
    <!-- ДОБАВИЛСЯ аттрибут id="wednesday" к скрытому блоку -->
    <div class="block" id="wednesday" style="display: none;">
        <div class="zap_tal_1">
            Здравствуйте! Ваш талон № <b class="zap_tal_2">13</b>
        </div>
        <div class="zap_tal">
             Ваш врач: <b class="zap_tal_2">Кузьмина Людмила Михайловна</b>
        </div>
        <div class="zap_tal">
             День приёма: <b class="zap_tal_2">Среда 15 Августа</b>
        </div>
        <div class="zap_tal">
             Время приёма: <b class="zap_tal_2">08:00</b>
        </div>
        <div class="line">
        </div>
        <form id="form" method="post" action="lesson20.php">
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Имя ребёнка:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="name_reb">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Фамилия ребёнка:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="fam_reb">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Отчество ребёнка:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="middle">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Домашний адрес:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="adres_dom">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Домашний телефон:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="tel_dom">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Сотовый телефон:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="te_sot">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Укажите пол:
                    </p>
                </div>
                <div class="formochka_input">
                    <div style="" class="container">
                        <input type="checkbox" style="opacity: 0;" checked="checked"><label style="opacity: 1;" class="on">Ж</label><label style="opacity: 0;" class="off">М</label>
                        <div style="left: 46px;" class="handle">
                            <div class="bg" style="background: none repeat scroll 0% 0% rgb(255, 255, 255); left: 34px;">
                            </div>
                            <div class="slider">
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Ваш E-mail:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="email" class="name_reb" name="mail">
                </div>
            </div>
            <input type="submit" value=" записаться ">
        </form>
    </div>
    <div class="doctor_z_4">
 
       <!-- ТУТ аттрибут rel="thursday" добавлен к ссылке -->
        <a href="#" class="fa" rel="thursday">Четверг 27 Декабря 09:20 - </a>
        <p>
            Свободный
        </p>
    </div>
    <div class="line">
    </div>
 
    <!-- СМОТРИТЕ ДОБАВИЛСЯ аттрибут id="thursday" к скрытому блоку -->
    <div class="block" id="thursday" style="display: none;">
        <div class="zap_tal_1">
            Здравствуйте! Ваш талон № <b class="zap_tal_2">3</b>
        </div>
        <div class="zap_tal">
             Ваш врач: <b class="zap_tal_2">Кузьмина Людмила Михайловна</b>
        </div>
        <div class="zap_tal">
             День приёма: <b class="zap_tal_2">Четверг 27 Декабря</b>
        </div>
        <div class="zap_tal">
             Время приёма: <b class="zap_tal_2">09:20</b>
        </div>
        <div class="line">
        </div>
        <form id="form" method="post" action="lesson20.php">
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Имя ребёнка:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="name_reb">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Фамилия ребёнка:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="fam_reb">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Отчество ребёнка:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="middle">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Домашний адрес:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="adres_dom">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Домашний телефон:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="tel_dom">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Сотовый телефон:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="text" class="name_reb" name="te_sot">
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Укажите пол:
                    </p>
                </div>
                <div class="formochka_input">
                    <div style="" class="container">
                        <input type="checkbox" style="opacity: 0;" checked="checked"><label style="opacity: 1;" class="on">Ж</label><label style="opacity: 0;" class="off">М</label>
                        <div style="left: 46px;" class="handle">
                            <div class="bg" style="background: none repeat scroll 0% 0% rgb(255, 255, 255); left: 34px;">
                            </div>
                            <div class="slider">
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="formochka">
                <div class="formochka_text">
                    <p>
                        Ваш E-mail:
                    </p>
                </div>
                <div class="formochka_input">
                    <input type="email" class="name_reb" name="mail">
                </div>
            </div>
            <input type="submit" value=" записаться ">
        </form>
    </div>
</div>
Javascript
1
2
3
4
// toggling
$('.fa').click(function(){
    $('#'+$(this).attr("rel")).toggle();
});
суть в том что к ссылке добавляется аттрибут rel, а к скрытому блоку аттрибут id.

пруф: http://jsfiddle.net/Stasonix/qYePq/
1
Dimka1judo
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
09.08.2012, 18:42  [ТС] 13
Цитата Сообщение от AlienNation Посмотреть сообщение
rel="wednesday"
Благодарю только на сколько я понял ты для каждого блока свой код прописывал, а у меня то не html а php и не всегда 2 записи, я потом в админке если добавлю 100 таких талонов то получается код уже будет не актуален. Но за помощь и старания благодарен.
0
Soldado
731 / 722 / 137
Регистрация: 28.06.2012
Сообщений: 1,318
Записей в блоге: 4
09.08.2012, 18:54 14
Универсальный код, добавляйте сколько угодно дивов:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript">
$(document).ready (function() {
$('.fa').toggle(
function() 
{
$(this).parent('div').next().children().show('drop', 2000);
},
 function()
{
$(this).parent('div').next().children().hide('drop', 2000);
});
});
</script>
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<body>
<div class="doctor_z_4">
    <a href="#" class="fa"> Талон 1 
</div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 1</div>
</div>
 
<div class="doctor_z_4">
    <a href="#" class="fa"> талон 2</div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 2</div>
</div>
...
<div class="doctor_z_4">
    <a href="#" class="fa"> талон 10</div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 10</div>
</div> 
 </body>
1
Dimka1judo
6 / 6 / 5
Регистрация: 16.01.2012
Сообщений: 245
09.08.2012, 19:00  [ТС] 15
Цитата Сообщение от Soldado Посмотреть сообщение
Универсальный код, добавляйте сколько угодно дивов:
Глять вроде всё как ты написал втсавил вообще теперь не кликается http://kostdgb.kz/mysite/doctor_z.php?cat_z=1, может я что то опять не так сделал
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
09.08.2012, 19:05 16
а оно и не должно кликаться, для этого надо событие click добавить к элементу, сами подумаете? Иногда brain надо включить самому, ну хоть чуть-чуть.

p.s. http://jquery-docs.ru/events/click/

Ну что рискнете прочитать и понять?
0
Soldado
731 / 722 / 137
Регистрация: 28.06.2012
Сообщений: 1,318
Записей в блоге: 4
09.08.2012, 20:03 17
Я, когда делал, опирался на эти ваши исходные данные:
Цитата Сообщение от Dimka1judo Посмотреть сообщение
Вот структура
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="doctor_z_4">
    <a href="#" class="fa"> Талон 1 </div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 1</div>
</div>
 
<div class="doctor_z_4">
    <a href="#" class="fa"> талон 2</div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 2</div>
</div>
...
<div class="doctor_z_4">
    <a href="#" class="fa"> талон 10</div>
<div class="block" style="display:none;">
    <div class="zap_tal_1">Время 10</div>
</div>
Вот js
Javascript
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
$(document).ready (function() {
$('.fa').toggle(function() 
{
$('div.block').show('drop', 2000);
}, function()
{
$('div.block').hide('drop', 2000);
});
});
</script>
Теперь что должно быть, изначально при загрузки страницы, должны быть только ссылки с надписями, талон 1 , талон 2 , талон 3 и тд. а div где время 1, время 2, время 3 быть скрытыми! (P.S.: это всё работает), далее при нажатии на ссылку "талон 1" под этой ссылкой, появляется div "время 1" все остальные div скрыты, при нажатии на ссылку "время 2" появлялся div с "время 2". Только вот надо так чтобы класс был у ссылок 1 и класс в div тоже у всех один и тот же. Ну вроде всё рассписал полностью.
Вот смотрите здесь. Даже дивы добавил для наглядности, а код скрипта не изменил. Если что не так скажите - помогу.

Добавлено через 44 минуты
Для вновь сгенерированных объектов обычная обработка событий работать не будет. Можно использовать live или delegate, но они не поддерживают toogle.
Можно сделать так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script type="text/javascript">
$(document).ready (function() {
$('.fa').live('click',obrabotchik);
function obrabotchik() 
{
$(this).parent('div').next().children().show('drop', 2000);
$(this).removeClass('fa').addClass('fb')
};
 
 
$('.fb').live('click',obrabotchik1);
function obrabotchik1() 
{
$(this).parent('div').next().children().hide('drop', 2000);
$(this).removeClass('fb').addClass('fa')
};
});
</script>
Я меняю здесь класс для ссылки, если Вы используете этот класс в CSS-стилях для оформления ссылки, то можно отказаться от этого в листе стилей, задав оформление через класс блока и ссылки в нём.
CSS
1
2
3
.doctor_z_4 a{
....
}
Вот здесь демонстрация с использованием live
1
09.08.2012, 20:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2012, 20:03

N кол во таблиц div в цикле нужно скрыть\показать определенный
Доброго времени суток! у меня возникла такая проблема: у меня есть большое...

Получить индекс родительского div при нажатии на дочерний div
Здравствуйте как можно получить индекс родительского div при нажатии на дочений...

Скрыть все видимые дочерние элементы в div
Имеется блок div с кучей скрытых div-ов внутри. Выглядит это примерно так:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru