Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.08.2015, 21:58
Интересующийся
Отправить личное сообщение для scorpion95 Посмотреть профиль Найти все сообщения от scorpion95
 
Регистрация: 02.08.2015
Сообщений: 24

Не передается строковая переменная
Вот часть кода, с которой трудности
var JSON;
var i;


function inboxmessageslist(){
	$.ajax({
		url: "php/getinboxmessageslist.php",
		type: "GET",
		dataType: "json",
		async: false,
		data: { login:getCookie('login') },
		success: function(json){
			for(var i = 0; i < json.length; i++){
				JSON[i] = 'asd';
				$('#inbox_messages_content').append('<div class="personal-message"><img src=' + getavatar(json[i].sender) + ' class="message-avatar" onclick="userprofile(' + JSON[i] + ')"></img></div>');
			}
	});
}

function userprofile(user){
	alert(user);
}


При клике функция не работает, а в логах консоли пишет - Uncaught ReferenceError: asd is not defined

А когда пишу вместо JSON[i] = 'asd'; на пример JSON[i] = 3;, то цифра успешно передается в функцию и выводится alert'ом. Почему же строковая переменная не передается? Помогите плиз, кто шарит. А то я голову сломал себе уже.
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2015, 13:10
Интересующийся
Отправить личное сообщение для scorpion95 Посмотреть профиль Найти все сообщения от scorpion95
 
Регистрация: 02.08.2015
Сообщений: 24

Парни хелп плиз.
Ответить с цитированием
  #3 (permalink)  
Старый 22.08.2015, 16:50
Интересующийся
Отправить личное сообщение для scorpion95 Посмотреть профиль Найти все сообщения от scorpion95
 
Регистрация: 02.08.2015
Сообщений: 24

Неужели кто не знает как решить вопрос?
Ответить с цитированием
  #4 (permalink)  
Старый 23.08.2015, 22:00
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от scorpion95
Uncaught ReferenceError: asd is not defined
Судя по ошибке после клика интерпретатор ищет переменную asd и выдаёт ошибку, т.к. в этом коде:
userprofile(' + JSON[i] + ')

переменной asd нет.
Вот пример как можно исправить это:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ГГ</title>

<style>
*{
    margin:0;
    padding:0;
    outline: 0;
}

.button {
    width: 200px;
    height: 200px;
    border: 1px solid red;
    background: #08c;
    margin: 20px;
}

.innerbutton {
    width: 100px;
    height: 100px;
    background: green;
}
</style>
</head>
<body>
<div class="button">Жми</div>
<div class="button">Результат</div>
<script>
var a = document.querySelector('.button:first-child');
var b = document.querySelector('.button:nth-child(1)');
var b1 = 3;
var b2 = 'asd';
a.onclick = function(){
  b.innerHTML = "<div class='innerbutton' onclick=\"userprofile("+"\'"+b2+"\'"+")\"></div>";
}

function userprofile(user){
  alert(user);
}
</script>
</body>

</html>

в общем надо использовать \' и \" если нужно чтобы была строка, а не переменная
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2015, 23:59
Аватар для join
Профессор
Отправить личное сообщение для join Посмотреть профиль Найти все сообщения от join
 
Регистрация: 05.03.2012
Сообщений: 478

Сообщение от EmperioAf Посмотреть сообщение
в общем надо использовать \' и \" если нужно чтобы была строка, а не переменная
Лучше не использовать. И без слешей может работать с переменными и строками.

http://jsfiddle.net/xtwsvd3w/
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальная переменная: не передается новое значение через функцию armidoll Общие вопросы Javascript 7 29.05.2015 22:54
Имя массива, как строковая переменная, при обращении bugiman Элементы интерфейса 4 18.11.2013 14:44
Не передается переменная через событие onclick в IE frost18 Элементы интерфейса 0 21.08.2011 00:15
переменная не передается kuzroman jQuery 4 24.05.2011 18:26
Строковая переменная как имя объекта MaxLazar Общие вопросы Javascript 4 06.10.2009 00:21