25.03.2014, 20:13
|
Интересующийся
|
|
Регистрация: 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 никаких признаков работы всей функции
|
|
25.03.2014, 20:37
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Ты, наверное, при передаче забыл заключить текст в кавычки. В javascript, как, собственно, и во многих других языках программирования, строки необходимо обрамлять кавычками. Вот так:
grow(1, 5, "Тратата", "Траляля");
|
|
25.03.2014, 20:58
|
Интересующийся
|
|
Регистрация: 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, "Тратата", "Траляля");
|
|
25.03.2014, 21:01
|
Интересующийся
|
|
Регистрация: 25.03.2014
Сообщений: 13
|
|
а до этого было
grow(1, 5, 'Тратата', 'Траляля');
но не работало чего то не понимаю
|
|
25.03.2014, 21:18
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
А ты полностью функцию привел?
|
|
25.03.2014, 21:50
|
Интересующийся
|
|
Регистрация: 25.03.2014
Сообщений: 13
|
|
функция не целиком.
окончательно понял в чём косяк, правильно такЖ
onmouseover="grow(<?php echo $x1; ?>,<?php echo $y1; ?>,'<?php echo $equety; ?>','<?php echo $equet; ?>')" onmouseout='skrit()' />
вызов функции в " , аргументы без ковычек (если в ковычках то функция их принимает, но автоматом переводит в текст, и следовательно мат операции не возможны), а текстовые переменные в одинарных '
А что уменя было т. к я запрос полностью генерировал через PHP то использовал только одинарные что бы конфликта не было.
|
|
25.03.2014, 22:12
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
если в ковычках то функция их принимает, но автоматом переводит в текст, и следовательно мат операции не возможны
|
Не совсем. Ты просто передаешь строку, содержащую число.
Цитата:
|
вызов функции в " ... ... а текстовые переменные в одинарных '
|
Потому-что кавычки одинакового типа нельзя вкладывать друг в друга. Если все-таки необходимо вложить - то вложенные надо экранировать при помощи слэша.
var string = "some string with \"quotes\"";
|
|
25.03.2014, 22:37
|
Интересующийся
|
|
Регистрация: 25.03.2014
Сообщений: 13
|
|
в начальном варианте функции мне было нужно только вывести на экран число, а теперь мне надо его перещитывать. Поэтому если занести число при передаче функции в ковычки, оно становиться строкой, и математические операции не возможны,
а слешы мне не помогали потомучто вызов функции я генерирую PHP
|
|
25.03.2014, 22:39
|
Интересующийся
|
|
Регистрация: 25.03.2014
Сообщений: 13
|
|
теперь всё работает
главное разобрался
и другие у кого возникнут сложности исходя из нашей переписки разберуться
|
|
25.03.2014, 22:54
|
|
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
Цитата:
|
слешы мне не помогали потомучто вызов функции я генерирую PHP
|
А, ну там надо экранировать и сам слеш) Вот так:
echo '<input onclick="call_func(\\"par\\") />';
Последний раз редактировалось Erolast, 04.04.2014 в 19:44.
|
|
|
|