Нужно открыть первый спойлер при загрузке
Есть код спойлера!
$(document).ready(function(){ $('.splLink').click(function(){ $('div.splCont').not($(this).parent().children('div.splCont')).slideUp('normal'); $(this).parent().children('div.splCont').slideDown('normal'); return false; }); }); После загрузки страницы все спойлеры закрыты! <div class="splLink">1</div> <div class="splCont">текст 1</div> <div class="splLink">2</div> <div class="splCont">текст 2</div> <div class="splLink">3</div> <div class="splCont">текст 3</div> нужно что бы первый спойл открылся после загрузки! Приблизительно понимаю, что нужно выбрать first.child(splCont) и сделать .slideUp(first.child(splCont) но так как синтаксис не знаю и прошу вашей помощи! |
Попробовал так!
$(document).ready(function(){ $('div.splCont:first-child').slideUp('normal'); $('.splLink').click(function(){ $('div.splCont').not($(this).parent().children('div.splCont')).slideUp('normal'); $(this).parent().children('div.splCont').slideDown('normal'); return false; }); }); Но результата не получил( |
$('.splLink').first().click() |
Цитата:
$(document).ready(function(){ $('.splLink').first().click() $('.splLink').click(function(){ $('div.splCont').not($(this).parent().children('div.splCont')).slideUp('normal'); $(this).parent().children('div.splCont').slideDown('normal'); return false; }); }); |
Проблему решил!
$(document).ready(function(){ $('div.splCont').first().slideDown('normal'); $('.splLink').click(function(){ $('div.splCont').not($(this).parent().children('div.splCont')).slideUp('normal'); $(this).parent().children('div.splCont').slideDown('normal'); return false; }); }); Всем спасибо! |
Бедный браузер. :) Всего лишь один клик и юзается столько методов, которые внутри используют ещё кучу методов и парсеров. :-?
|
Цитата:
|
karakym, может и смогу, сначала опиши, что там у тебя вообще за скрипт и что должен делать? Простая система спойлеров, которые плавно открываются/закрываются?
|
karakym,
решение Skipp, рабочее только вы его неправильно использовали -- кликать надо после того как клик назначен |
короче, это спойлер-гармошка, пример тут
он должен открывать один споил и закрывать при этом предыдущий! Мне нужно было только, что бы при загрузке страницы он открыл первый споил! |
Вариант на скорую руку. ;)
http://learn.javascript.ru/play/fqkLOb <!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> <style type="text/css"> .spoiler:not(:first-child) > div { display: none; } </style> </head> <body> <section class="spoiler"> <a href="#">Спойлер 1</a> <div>короче, это спойлер-гармошка, пример тут он должен открывать один споил и закрывать при этом предыдущий! Мне нужно было только, что бы при загрузке страницы он открыл первый споил!</div> </section> <section class="spoiler"> <a href="#">Спойлер 2</a> <div>короче, это спойлер-гармошка, пример тут он должен открывать один споил и закрывать при этом предыдущий! Мне нужно было только, что бы при загрузке страницы он открыл первый споил!</div> </section> <section class="spoiler"> <a href="#">Спойлер 3</a> <div>короче, это спойлер-гармошка, пример тут он должен открывать один споил и закрывать при этом предыдущий! Мне нужно было только, что бы при загрузке страницы он открыл первый споил!</div> </section> <script type="text/javascript"> $(function() { var activeSpoiler = $('.spoiler:first > a'); $(document).on('click', '.spoiler > a', function() { var self = $(this) if(this == activeSpoiler[0]) self.next().slideToggle(); else { activeSpoiler.next().slideUp(); self.next().slideDown(); activeSpoiler = self; } }); }); </script> </body> </html> |
Цитата:
А мог бы ты пожалуйста, подогнать мне его под <tr> Вот у меня можно увидеть, что жмется только средний столбик для открытия спойлера, а пользователи пытаются нажимать на строку <tr></tr> полностью и иногда из за этого заблуждаются и уходят! |
karakym, ну так просто вставляй спойлер в ячейку. :)
|
karakym,
$(document).ready(function() { var tr = $('.table-wrapper tbody tr'); tr.click(function() { tr.not(this).find('.splCont').slideUp('normal'); $('.splCont', this).slideToggle('normal') return false; }).eq(0).click(); }); |
Цитата:
|
Часовой пояс GMT +3, время: 19:19. |