Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.07.2011, 19:15
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Использование одной переменной в нескольких функциях
Есть одна переменная обозначенная в самом начале файла скрипта
var name = document.getElementById('див');

Дальше идут множество функций использующих эту переменную.
Например так name.style.display = 'none';
В роде бы всё норм, но одна функция при просмотре в консоли ошибок на ФФ выдаёт, что name is null. Но как эта переменная может быть null если она определина в начале программы?
Ответить с цитированием
  #2 (permalink)  
Старый 07.07.2011, 19:22
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Если "в начале программы" name действительно была не null, то либо кто-то переопределил ее, либо это уже другая переменная:
var name = "test";
(function(name){
  alert( name );
}(null));
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2011, 19:34
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Ды вродь ничего не переопредилял
Вот та функция

function list(sel, id)
{
		$.ajax({
				type: "POST",
				url: "list.php",
				data: {select: 'add', id: id},
				success: function(html)
						{
							$("#res_adm").html(html);
							start();
							name.style.display = 'block';
							setTimeout(function() {name.style.display = 'none'; clean()},2000);
						}
			});
		return false;
}
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2011, 23:01
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

очень плохая идея называть глобальную переменную именем name.
дело в том, что name - это свойство объекта window, в данном случае, видимо, дело в этом. у меня так однажды было. долго искал косяк.
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2011, 23:49
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

А если обозначить как error?

Последний раз редактировалось (Sandr), 07.07.2011 в 23:59.
Ответить с цитированием
  #6 (permalink)  
Старый 08.07.2011, 00:16
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

обозначь как Document, или dOcument
Ответить с цитированием
  #7 (permalink)  
Старый 08.07.2011, 22:32
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Вот подобный пример, подскажите пожалуйста, где ошибка

<script src="js/jquery.js"></script> 
<script>
var aaaa = document.getElementById('divvv');

function list(sel)
{
	if(sel == 'add')
	{
		alert(aaaa.style.display);
		$.ajax({
				type: "POST",
				url: "/query.php",
				data: {select: 'add', id_comm: id_comm},
				success: function(html)
						{
							$("#divvv").html(html);
							aaaa.style.display = 'block';
							setTimeout(function() {aaaa.style.display = 'none'; },2000);
						}
			});
		return false;
	}
}
</script>
<html>
<head>
<title>Панель управления блогом</title>
</head>
<body>
<div id="divvv" style="display:none">!11!11!</div>	
<a href="javascript:void(0)" onclick="list('add')">Запустить</a>
</body>
</html>

Последний раз редактировалось (Sandr), 08.07.2011 в 22:37.
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2011, 00:26
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

обернуть бы все это в
$(function() {
   ...
})

вроде как var aaaa = document.getElementById('divvv'); не должна быть определена так как DOM не загрузился еще
Ответить с цитированием
  #9 (permalink)  
Старый 09.07.2011, 01:33
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от (Sandr)
Есть одна переменная обозначенная в самом начале файла скрипта
var name = document.getElementById('див');
либо это по onload выполнять.либо после нтмл кода <div id="divvv" style="display:none">!11!11!</div> .иначе как сказано в посте выше -в dom дереве не существует ещё этого элемента
Ответить с цитированием
  #10 (permalink)  
Старый 09.07.2011, 20:56
Аспирант
Отправить личное сообщение для ILL-JAH Посмотреть профиль Найти все сообщения от ILL-JAH
 
Регистрация: 24.03.2011
Сообщений: 93

(Sandr), помести скрипт после body.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование одной функции для элементов с разными ID Ferroks Общие вопросы Javascript 10 11.09.2009 08:51