17.09.2012, 13:34
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от zevilz
|
Принцип понял, но не понял как сделать. Переделал свой скрипт:
$(document).ready(function() {
// Сворачиваем панель
$("#close").click(function(){
$("div#panel").slideUp("slow");
$("#toggle a").toggle();
});
// Сворачиваем панель при снятии фокуса с #toppanel
$("#toppanel").blur(function(){
$("*").not("#panel input").focus(function(){
$("div#panel").slideUp("slow");
$("#toggle a").toggle();
});
});
// Сворачиваем панель при снятии фокуса с input
$("#toppanel input").blur(function(){
$("*").not("#panel input").focus(function(){
$("div#panel").slideUp("slow");
$("#toggle a").toggle();
});
});
// Разворачиваем панель
$("#open").click(function(){
$("div#panel").slideDown("slow");
$("#toggle a").toggle();
});
});
Сдесь добавил следующее:
1.При снятии фокуса с панели панель сворачивается. Но только если фокус получает не input на этой панели. На панели 4 инпута: для логина, пароля, чекбокс и submit.
2. При снятии фокуса с любого инпута панель сворачивается. Но если фокус получает не другой инпут на этой панели.
При снятии фокуса с панели она закрывается нормально, кнопка закрытия меняет свое содержимое. Но при повторном открытии при первом и втором клике выполняется только $("#toggle a").toggle();. И только при третьем клике панель открывается. То же самое происходит и при снятии фокуса с инпутов. И заметил еще косяк: если после фокуса на инпутах кликнуть на чекбокс, то панель закроется, а если наоборот, то панель не закроется.
Может кто вкурсе, почему происходит такая хрень и как исправить?
|
этот код поломается, если на панель добавить textarea или кнопку button и вы его забудете добавить...
Короче решение хреновое плохое
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|