Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.12.2013, 14:32
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

если переменная не определена
Здравствуйте, при клике на элемент хочу создать переменную соответствующую именно этому элементу но прежде проверить на существование ее, что то не получается на выводе все равно undefined уже после создания переменной
$('.li').click(function(){
var _this=$(this).attr('id');
if ( _this.p==undefined ){
_this.p=0;
alert(_this.p)
}

Последний раз редактировалось imediasun1, 04.12.2013 в 14:47.
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2013, 15:06
Интересующийся
Отправить личное сообщение для Soul D Esire Посмотреть профиль Найти все сообщения от Soul D Esire
 
Регистрация: 25.01.2011
Сообщений: 15

Если именно этому элементу, то может лучше и легче будет задать какой-нибудь атрибут данному элементу и уже в него записывать значение?
Ответить с цитированием
  #3 (permalink)  
Старый 04.12.2013, 15:07
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от imediasun1
на выводе все равно undefined
Бивас, тест! (с)

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(function (){
	$('li').click(function(){
		var _this=$(this).attr('id');
		if ( _this.p==undefined ){ //Unhandled Error: Cannot convert '_this' to object
			_this.p=0;
			alert(_this.p);
		};
	});
});
</script>
</head>
<body>
<ul>
	<li>test</li>
</ul>
</body>
</html>

Встречный вопрос:
- Где тот вывод undefined?
Ответить с цитированием
  #4 (permalink)  
Старый 04.12.2013, 15:30
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

Объясните подробнее он что не принимает _this за объект, и что делать в данном случае чтобы была различная переменная в зависимости от выбранного элемента, приведу код раскрывающегося меню
в котором хочу использовать данную проверку на существование переменной
$('.li').click(function(){
var _this=$(this).attr('id');
if ( _this.p==undefined ){
_this.p=0;
alert(_this.p)
}
if (_this.p==0){

$(this).find('ol').slideDown();
$(this).css('font-weight','bold');
$(this).find('li').css('background','#5f6f91')
$(this).find('li').find('a').css('color','#fff')
$(this).find('ol').css('font-weight','normal');
_this.p=1;
}
else if (_this.p==1){
$(this).find('ol').slideUp();
$(this).css('font-weight','normal');
$(this).css('background','#fff')
$(this).css('color','#000')
_this.p=0;
}
});
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2013, 15:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от imediasun1
Объясните подробнее он что не принимает _this за объект
Так он и не объект...

var _this=$(this).attr('id');

Тут _this равен некоему значению атрибута. Причем данное значение можно получить нативным
var _this=this.id;
Ответить с цитированием
  #6 (permalink)  
Старый 04.12.2013, 15:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от imediasun1
и что делать в данном случае
- Сделать таки нормальный тестовый пример.
- Нормально объяснить, что нужно получить в итоге...
Ответить с цитированием
  #7 (permalink)  
Старый 04.12.2013, 17:06
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

при клике на элемент с классом li он должен открыть список, а при повторном нажатии закрыть, поэтому придумана переменная p которая определяет открыт или закрыт список в данный момент, а привязать к id я хотел для того чтобы соседние списки не раскрывались которые тоже имеют этот же класс
Ответить с цитированием
  #8 (permalink)  
Старый 04.12.2013, 17:07
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

видно надо в переменную _this просто сохранить текстовое значение атрибута id, а не объект
Ответить с цитированием
  #9 (permalink)  
Старый 04.12.2013, 17:18
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

Сообщение от Soul D Esire Посмотреть сообщение
Если именно этому элементу, то может лучше и легче будет задать какой-нибудь атрибут данному элементу и уже в него записывать значение?
Например
Ответить с цитированием
  #10 (permalink)  
Старый 05.12.2013, 08:45
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от imediasun1
при клике на элемент с классом li он должен открыть список, а при повторном нажатии закрыть, поэтому придумана переменная p которая определяет открыт или закрыт список в данный момент
А про классы ты слышал? Все уже придумано до тебя...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение формы, если видна лишь часть последней Mr. T Общие вопросы Javascript 4 18.03.2012 16:51
jQuery. Запрет выполнения события если другое уже выполняется. Kostyk92 Элементы интерфейса 4 09.03.2012 23:46
Переменная "на лету" kixik jQuery 4 15.02.2012 22:50
Скрыть слой если щелкнули не по нему _axl jQuery 0 13.04.2011 08:10
iframe | закрыть если... Geek Events/DOM/Window 5 30.09.2008 16:23