Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.05.2009, 22:49
Кандидат Javascript-наук
Отправить личное сообщение для `p r o x y Посмотреть профиль Найти все сообщения от `p r o x y
 
Регистрация: 04.05.2009
Сообщений: 105

как проверить скрыт/отображается объект?
jQuery.fn.toggle = function(){
	this.each(function(){
		var me = jQuery(this);
		me.prepend(
			jQuery('<span>&#8593;&nbsp;</span><span class="error">Ошибка:&nbsp;</span>')
		);
		me.css('cursor', 'pointer').bind('click', function(e){
			//alert(me.attr('idd'));
			var p13_lh14 = $('div.p13_lh14:has(textarea#'+me.attr('idd')+')');
			p13_lh14.slideToggle('fast', function(){
				if($(p13_lh14+':hidden')){
					me.find('span:first').html('<span>&#8595;&nbsp;</span>');
				}else{
					me.find('span:first').html('<span>&#8593;&nbsp;</span>');
				}
			});
		});
	});
	return false;
}

$(document).ready(function(){
  $('textarea').resizer();
  $('h1').toggle();
  $('h1 span.error').hide();
});


вот тут участок с if - как правильно его сделать?
если такое, или приписывать скрытому блоку какойнить атрибут и потом по нему проверять?
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2009, 00:06
Интересующийся
Отправить личное сообщение для SDone Посмотреть профиль Найти все сообщения от SDone
 
Регистрация: 24.02.2009
Сообщений: 17

function noviewinput (id)
	{
		$("#"+id).css({display: ""});
		$("#in"+id).css({display: "none"});
	}


а если так скрывать?
при анимации моно прозрачность в 0 свести и тоже будет скрыт.
Ответить с цитированием
  #3 (permalink)  
Старый 05.05.2009, 00:08
Интересующийся
Отправить личное сообщение для SDone Посмотреть профиль Найти все сообщения от SDone
 
Регистрация: 24.02.2009
Сообщений: 17

ну конено в переменную вносить скрыт или открыт.
или смотреть что в дисплей стоит.
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2009, 00:14
Кандидат Javascript-наук
Отправить личное сообщение для `p r o x y Посмотреть профиль Найти все сообщения от `p r o x y
 
Регистрация: 04.05.2009
Сообщений: 105

SDone,
просто делаю все в одной функции, смысл еще одни функции делать?
или это для примера?

не совсем понял зачем "#in"+id...пока, решил так:

h1.bind('click', function(){
			p13_lh14.slideToggle('fast', function(){
				if(p13_lh14.data('show')){
					p13_lh14.data('show', 0);
					h1.find('span:first').html('<span>&#8595;&nbsp;</span>');
				}else{
					p13_lh14.data('show', 1);
					h1.find('span:first').html('<span>&#8593;&nbsp;</span>');
				}
			});
		});


в js это нормально или лучше по другому?
Ответить с цитированием
  #5 (permalink)  
Старый 05.05.2009, 00:18
Интересующийся
Отправить личное сообщение для SDone Посмотреть профиль Найти все сообщения от SDone
 
Регистрация: 24.02.2009
Сообщений: 17

"#in"+id - да это просто пример. показать как с див работать.
если пашет так то че и менять?

Иногда не до красоты.
Ответить с цитированием
  #6 (permalink)  
Старый 05.05.2009, 00:32
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
в js это нормально или лучше по другому?
это скорее jQuery-решение, имхо, нормальное. Без использования библиотек обычно пишут
if( p13_lh14.style.display == 'none' ) ...

(если оно изменяется в процессе)
Ответить с цитированием
  #7 (permalink)  
Старый 05.05.2009, 00:42
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

"По-джикверевски" наверное так:
$('#myid').is(':hidden')

Вот это:
if($(p13_lh14+':hidden'))
работать будет всегда, даже если не найдется элемент -- jquery ведь возвращает объект, даже если ничего не нашло, а проверить, попалось ли что-то, можно через метод size:
if($(p13_lh14+':hidden').size()){...}
Ответить с цитированием
  #8 (permalink)  
Старый 05.05.2009, 01:06
Кандидат Javascript-наук
Отправить личное сообщение для `p r o x y Посмотреть профиль Найти все сообщения от `p r o x y
 
Регистрация: 04.05.2009
Сообщений: 105

SDone,
x-yuri,
e1f,
Благодарю! Классно, вчера весь день колопатил мануалы и 0 результат )
Сегодня прям прорыв - уже начинается нравится js, который до этого обходил стороной ))


if($(p13_lh14+':hidden').size()){...}

а в смысле? ...зачем и что проверять?
Ответить с цитированием
  #9 (permalink)  
Старый 05.05.2009, 01:13
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

if($(p13_lh14+':hidden'))

а почему у меня не работает? Объект всегда возвращается, потому всегда true будет. Am I wrong?
и непонятно, что такое p13_lh14+':hidden'... в p13_lh14 должно быть '#myid'?
if($(p13_lh14+':hidden').size()){...}

проверка отображается ли элемент... в p13_lh14 должно быть '#myid' как я понял, ну т.е. можно так
if($('#myid:hidden').size()){...}
Ответить с цитированием
  #10 (permalink)  
Старый 05.05.2009, 01:18
Кандидат Javascript-наук
Отправить личное сообщение для `p r o x y Посмотреть профиль Найти все сообщения от `p r o x y
 
Регистрация: 04.05.2009
Сообщений: 105

Цитата:
и непонятно, что такое p13_lh14+':hidden'... в p13_lh14 должно быть '#myid'?
у меня это вот это:
var p13_lh14 = $(this).find('div.p13_lh14');
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить присутствует ли на странице заданный объект? nick Общие вопросы Javascript 7 18.12.2010 19:16
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
Как проверить ссылку на работоспособнось? Oleg_777 Общие вопросы Javascript 23 19.03.2009 18:57
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09
как проверить поддеружет браузер определенное событие? GOll Элементы интерфейса 9 24.07.2008 14:40