Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2012, 19:15
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Некорректная работа slideUp и slideDown
Есть небольшой html к которому подручены 2 функции.
1-показывает все необходимые блоки - slideDown();
2-скрывает все все эти блоки - slideUp();
Проблема в том, что если нужные блоки находятся в скрытых блоках - например - <div hidden><div hidden class="нужный блок"></div></div>
то для них 1-я функция работает нормально. в этих невидимых блоках - они становятся видимыми. Но вот 2-я функция наотрез отказывается работать. если блок в котором находится нужны элемент скрыт - slideUp нужные блоки игнорирует, если блок открыт, то все нормально. Как можно эту проблему поправить? вместо slideUp() применял hide(). Эффект то же.
вот пример кода.
function show_edit_firm(){
	$('.edit_firm_inp,.edit_block,.firm_info').each(function(){
		$(this).slideDown('500');
	})
}

function hide_edit_firm(){
	$('.edit_firm_inp,.edit_block,.edit_block:hidden').each(function(){
		$(this).slideUp('500');
	})
	$('.firm_info').each(function(){
		if($(this).html()==' : ')
		$(this).slideUp();
	})
}
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2012, 19:48
Аспирант
Отправить личное сообщение для atlantis Посмотреть профиль Найти все сообщения от atlantis
 
Регистрация: 18.03.2012
Сообщений: 95

Не знаю, но я такого никогда не видел "<div hidden>"
Мб в css прописать будет лучше?
Ответить с цитированием
  #3 (permalink)  
Старый 20.04.2012, 19:59
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

ну div hidden - это тоже самое что и display:none.
В общем проблему решил очень топорным методом
function hide_edit_firm(){
	$('.fil_dop_info').each(function(){ //открывает все блоки, где находятся нужны элементы которые нужно скрыть.
		$(this).show();
	})
	$('.edit_firm_inp,.edit_block').each(function(){
		$(this).slideUp(); // скрывает элементы edit_firm_inp которые находятся внутри блоков fil_dop_info
	})
	$('.fil_dop_info').each(function(){ //скрывает все блоки, обратно, в который производилось предыдущее действие.
		$(this).hide();
	})
}
Ответить с цитированием
  #4 (permalink)  
Старый 20.04.2012, 20:01
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

но справедливости ради могу сказать что $(this).css('display','none') проблему решает в миг, но собственно задумка всей анимации slideUp пропадает.
Ответить с цитированием
  #5 (permalink)  
Старый 25.04.2012, 00:31
Аватар для sysya
Профессор
Отправить личное сообщение для sysya Посмотреть профиль Найти все сообщения от sysya
 
Регистрация: 27.12.2009
Сообщений: 292

не понятно зачем здесь each
все эти методы итак работают для всего набора элементов

элемент находящийся внутри скрытого элемента тоже будет скрыт и действия над ним будут также не видны, если правильно понял вашу проблему

и преиведите также пример HTML-кода, с которым работает скрипт
__________________
Нет предела совершенству...

Последний раз редактировалось sysya, 25.04.2012 в 00:40.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректная работа скрипта в разных браузерах en-k Общие вопросы Javascript 2 15.03.2011 14:54
Некорректная работа скрипта defond Серверные языки и технологии 15 24.01.2011 18:07
slideToggle slideDown slideUp mycoding jQuery 1 17.05.2010 07:38
Некорректная работа ф-ции Dimonya Events/DOM/Window 7 15.04.2010 14:12
Некорректная работа lightwindow в ie6,7,8 nastya Internet Explorer 1 20.11.2009 07:52