jQuery. Запрет закрытия окна по щелчку
1.
Дмитрий (14.04.2011 / 22:42)
Есть трабла.
Функция jQuery toggle() - открывает/закрывает блочные элементы. То что мне нужно. НО при щелчке рядом с открытым элементом он автоматически закрывается. Как это побороть?
Я использую так:
<script language="javascript" type="text/javascript">
$(document).ready(function ()
{
$("#example_j a").click(function()
{
$("#example_j p").toggle(600);
return false
});
});
</script>
где 600 - скорость анимации при открытии/закрытии элемента.
Еще одна трабла - по умолчанию элемент открыт, мне надо чтобы он был закрыт по умолчанию. А открывался - по требованию.
2.
Богдан (15.04.2011 / 00:38)
Функция toggle()
переключает отображение каждого набора подходящих элементов.
Если я тебя правильно понял то тебе нужен примерно такой код:
$(document).ready(function ()
{
$("#example_j a").click(function()
{
if($("#example_j p").is(':hi dden')){
$("#example_j p").show();
}else{
$("#example_j p").hide();
}
});
});
А что б был скрыт изначально пишешь либо елементе style="display
ne" либо в ЖС добавляешь
$("#example_j p").hide()
3.
Дмитрий (15.04.2011 / 03:55)
2.
G_A_N_J_A_R, hide() скрывает элемент окончательно, без возможности открыть его.
4.
Tony V (15.04.2011 / 09:00)
4, не верю
5.
Богдан (15.04.2011 / 10:17)
3. Для того что б его открыть используем show(); или css('display', 'block') . Я ж написал уже готовый код.
6.
Дмитрий (15.04.2011 / 16:03)
5.
G_A_N_J_A_R, да я примерно такую конструкцию тоже соорудил. Не работает.
Точнее, конструкция работает, но вот какая трабла:
я в выезжающем блоке прячу форму добавления сообщения с быстрыми смайлами. Вот как раз при щелчке по смайлу, смайл добавляется в форму, но блок сразу же скрывается.
Пришел к мнению, что это происходит скорее всего из-за потери фокуса.
Скрипт быстрых смайлов использую моторовский.
Помню, Рамзес поднимал такую тему на форуме по поводу потери фокуса....
Как сделать чтобы при щелчке по смайлу каретка оставалась в фокусе TEXTAREA?
7.
ramzes (15.04.2011 / 16:32)
6.
Павел Дуров, дома буду, скину функцию, фокус не теряется уже
8.
Богдан (15.04.2011 / 17:15)
6.После вставки кода смайла возвращаем фокус
$('textarea').focus();
9.
Дмитрий (15.04.2011 / 18:57)
Так. Теперь все кошерно работает
Интересно, есть возможность изменить направление анимации? Не очень устраивает горизонтальная анимация (выезжает слева направа, заезжает обратно справа налево). Хотелось бы вертикально...
10.
Дмитрий (15.04.2011 / 19:18)
Заметил еще небольшой бок:
Ссылка , актитирующая скрытый элемент находится у меня в блоке "#p_info"
Сам активный элемент находится сразу под ним в блоке "#div_info"
Сразу под этими блоками у меня выводится совершенно другой блок, не имеющий к данным никакого отношения - "#div_post"
Так вот, когда я нажимаю на ссылку чтобы скрыть активный элемент "#div_info", он как положено прячется (сворачивается), но блок "#div_post", не имеющий к нему никакого отношения как бы "прилипает" к блоку "#p_info" и отлипает (становится на место) только если кликнуть мышкой в любом месте страницы. Я это поборол скоростью анимации при сворачивании - сделал 1200 милисекунд, но такая медленная скорость меня не устраивает.
Как быть? Сталкивались с этим?
11.
Богдан (15.04.2011 / 22:35)
10. Есть пример того где ты уже заменил на jQuery? на угад не скажешь, а тестировать самому не охота.
12.
Дмитрий (15.04.2011 / 22:45)
Сейчас создам поддомен и залью на поддомен. В принципе, в приват я скидывал тебе. Там на Mootools. Я пытаюсь добиться того же на jquery.
URL:
https://visavi.net/topics/20713