Javascript.RU

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

текстовые переменные в функции
Заранее огромное спасибо.
По JS не специалист только начал разбираться и столкнулся с проблемой с которой не могу разобраться

Если такая тема была пожайлуста скиньте ссылку или подскажите

var grow = function(x,y,equity, equit) {
document.getElementById("red").style.visibility = "visible";


red4.textContent = equity;
red4.setAttribute("x",x1+2);
redcircle4.setAttribute("y",y1+35);

red5.textContent = equit;
red5.setAttribute("x",x1+2);
red5.setAttribute("y",y1+22);
}
Функция прекрасно работает если передовать числа, а если equity текст equit никаких признаков работы всей функции
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2014, 20:37
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ты, наверное, при передаче забыл заключить текст в кавычки. В javascript, как, собственно, и во многих других языках программирования, строки необходимо обрамлять кавычками. Вот так:
grow(1, 5, "Тратата", "Траляля");
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2014, 20:58
Интересующийся
Отправить личное сообщение для Georgiy_M Посмотреть профиль Найти все сообщения от Georgiy_M
 
Регистрация: 25.03.2014
Сообщений: 13

СПАСИБО
да дело в кавычках, но почемуто зороботало когда привёл к виду

onmouseover="grow('<?php echo $x1; ?>','<?php echo $y1; ?>','<?php echo $equety; ?>','<?php echo $equet; ?>')" onmouseout='skrit()' />

то есть grow('1', '5', 'Тратата', 'Траляля');

а в таком виде почемуто не заработало

grow(1, 5, "Тратата", "Траляля");
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2014, 21:01
Интересующийся
Отправить личное сообщение для Georgiy_M Посмотреть профиль Найти все сообщения от Georgiy_M
 
Регистрация: 25.03.2014
Сообщений: 13

а до этого было
grow(1, 5, 'Тратата', 'Траляля');
но не работало чего то не понимаю
Ответить с цитированием
  #5 (permalink)  
Старый 25.03.2014, 21:18
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

А ты полностью функцию привел?
Ответить с цитированием
  #6 (permalink)  
Старый 25.03.2014, 21:50
Интересующийся
Отправить личное сообщение для Georgiy_M Посмотреть профиль Найти все сообщения от Georgiy_M
 
Регистрация: 25.03.2014
Сообщений: 13

функция не целиком.
окончательно понял в чём косяк, правильно такЖ
onmouseover="grow(<?php echo $x1; ?>,<?php echo $y1; ?>,'<?php echo $equety; ?>','<?php echo $equet; ?>')" onmouseout='skrit()' />

вызов функции в " , аргументы без ковычек (если в ковычках то функция их принимает, но автоматом переводит в текст, и следовательно мат операции не возможны), а текстовые переменные в одинарных '

А что уменя было т. к я запрос полностью генерировал через PHP то использовал только одинарные что бы конфликта не было.
Ответить с цитированием
  #7 (permalink)  
Старый 25.03.2014, 22:12
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
если в ковычках то функция их принимает, но автоматом переводит в текст, и следовательно мат операции не возможны
Не совсем. Ты просто передаешь строку, содержащую число.
Цитата:
вызов функции в " ... ... а текстовые переменные в одинарных '
Потому-что кавычки одинакового типа нельзя вкладывать друг в друга. Если все-таки необходимо вложить - то вложенные надо экранировать при помощи слэша.
var string = "some string with \"quotes\"";
Ответить с цитированием
  #8 (permalink)  
Старый 25.03.2014, 22:37
Интересующийся
Отправить личное сообщение для Georgiy_M Посмотреть профиль Найти все сообщения от Georgiy_M
 
Регистрация: 25.03.2014
Сообщений: 13

в начальном варианте функции мне было нужно только вывести на экран число, а теперь мне надо его перещитывать. Поэтому если занести число при передаче функции в ковычки, оно становиться строкой, и математические операции не возможны,
а слешы мне не помогали потомучто вызов функции я генерирую PHP
Ответить с цитированием
  #9 (permalink)  
Старый 25.03.2014, 22:39
Интересующийся
Отправить личное сообщение для Georgiy_M Посмотреть профиль Найти все сообщения от Georgiy_M
 
Регистрация: 25.03.2014
Сообщений: 13

теперь всё работает
главное разобрался
и другие у кого возникнут сложности исходя из нашей переписки разберуться
Ответить с цитированием
  #10 (permalink)  
Старый 25.03.2014, 22:54
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
слешы мне не помогали потомучто вызов функции я генерирую PHP
А, ну там надо экранировать и сам слеш) Вот так:
echo '<input onclick="call_func(\\"par\\") />';

Последний раз редактировалось Erolast, 04.04.2014 в 19:44.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление функции внутрь другой функции Lion_astana jQuery 9 28.12.2013 14:33
Передать переменные по ссылке href в разные функции izcian Общие вопросы Javascript 3 22.08.2012 19:31
переменные и их текстовые названия function Общие вопросы Javascript 1 10.01.2012 14:05
Установить имя конструктора Андрей Параничев Общие вопросы Javascript 8 17.11.2011 10:09
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21