Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   текстовые переменные в функции (https://javascript.ru/forum/misc/46037-tekstovye-peremennye-v-funkcii.html)

Georgiy_M 25.03.2014 20: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 никаких признаков работы всей функции

Erolast 25.03.2014 20:37

Ты, наверное, при передаче забыл заключить текст в кавычки. В javascript, как, собственно, и во многих других языках программирования, строки необходимо обрамлять кавычками. Вот так:
grow(1, 5, "Тратата", "Траляля");

Georgiy_M 25.03.2014 20:58

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

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

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

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

grow(1, 5, "Тратата", "Траляля");

Georgiy_M 25.03.2014 21:01

а до этого было
grow(1, 5, 'Тратата', 'Траляля');
но не работало чего то не понимаю

Erolast 25.03.2014 21:18

А ты полностью функцию привел?

Georgiy_M 25.03.2014 21:50

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

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

А что уменя было т. к я запрос полностью генерировал через PHP то использовал только одинарные что бы конфликта не было.

Erolast 25.03.2014 22:12

Цитата:

если в ковычках то функция их принимает, но автоматом переводит в текст, и следовательно мат операции не возможны
Не совсем. Ты просто передаешь строку, содержащую число.
Цитата:

вызов функции в " ... ... а текстовые переменные в одинарных '
Потому-что кавычки одинакового типа нельзя вкладывать друг в друга. Если все-таки необходимо вложить - то вложенные надо экранировать при помощи слэша.
var string = "some string with \"quotes\"";

Georgiy_M 25.03.2014 22:37

в начальном варианте функции мне было нужно только вывести на экран число, а теперь мне надо его перещитывать. Поэтому если занести число при передаче функции в ковычки, оно становиться строкой, и математические операции не возможны,
а слешы мне не помогали потомучто вызов функции я генерирую PHP

Georgiy_M 25.03.2014 22:39

теперь всё работает
главное разобрался
и другие у кого возникнут сложности исходя из нашей переписки разберуться

Erolast 25.03.2014 22:54

Цитата:

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


Часовой пояс GMT +3, время: 19:34.