Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Переменная в параметре функции (https://javascript.ru/forum/jquery/39019-peremennaya-v-parametre-funkcii.html)

Алек 12.06.2013 15:13

Переменная в параметре функции
 
Здравствуйте!
Я вот пишу функцию, в параметр подставляю переменную чтоб пользователь мог задавать время за которое блок будет исчезать.

function real (x, y){
var f = "#"+x;
if(y < 500 || y > 3000){
return false;
}
$(f).hide('slide', y);

}
var von = prompt("Введите число уезда блока");
real ("div_for_img", von);

Но блок просто исчезает, игнорируя .hide('slide', y);
Что можно предпринять в связи с этим?

danik.js 12.06.2013 15:57

Цитата:

Сообщение от Алек
Что можно предпринять в связи с этим?

Прочитать документацию?

рони 12.06.2013 16:18

Алек,
http://api.jqueryui.com/hide/
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <script>
  $(window).load(function () {
    function real (x, y){
 var f = "#"+x;
 if(+y < 500 || +y > 3000){
 return false;
 }
 $(f).hide('slide', +y);

 }
 var von = prompt("Введите число уезда блока",2000);
 real ("div_for_img", von);
 })
  </script>
</head>

<body>
  <img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" id="div_for_img">

</body>

</html>

рони 12.06.2013 16:29

Алек,
какой браузер? наверно Google Chrome?

BaVa 12.06.2013 16:31

чтоб не создавать лишнюю переменную лучше сделать так
x = "#" + x;

danik.js 12.06.2013 17:51

Цитата:

Сообщение от BaVa
чтоб не создавать лишнюю переменную лучше сделать так

Это мелочи по сравнению с именами переменных.
x , y - координаты ??
real - догадайся с тысячной попытки что функция с таким именем делает
von - ??? аббревиатура какая чтоле?

<img id="div_for_img" /> - ГДЕ ЛОГИКА, БРАТ?? ГДЕ ЛОГИКА? !!!:blink:

рони 12.06.2013 18:20

Цитата:

Сообщение от danik.js
ГДЕ ЛОГИКА, БРАТ?? ГДЕ ЛОГИКА? !!!

Максимальное сохранение контекста ТС с минимальными затратами.

danik.js 12.06.2013 18:31

Цитата:

Сообщение от рони
Максимальное сохранение контекста ТС с минимальными затратами.

Вопрос был к ТС, а не к тебе)

Алек 12.06.2013 19:41

Чё-то я вообще уже перестал что-нибудь понимать, я думал что скрипт не работает, потому что prompt возвращает строку, а не число, отпарсил, результат 0.
Вот специально задал переменную строкой, отпарсил, всё работает:
var von = "2500";
var newvon = parseInt(von);
real ("div_for_img", newvon);
А переменная полученная методом prompt не работает, переписал скрипт, как выше написал рони, не работает!
До этого несколько раз использовал prompt например когда получал возраст пользователя, проверял специально условиями y > 16 || y < 30 || isNaN(y), всё отлично работало.
Почему-то prompt не под каким видом не желает работать в этой функции и я не знаю в чём тут причина.

ЗЫ На счёт непонятных имён переменных, я обычно всегда так делаю, внутри функции это локальные переменные, они всё равно ни на что не влияют, но что касается real и von, то я переделаю имя после того как событие на функцию повешу, просто не определюсь пока какие имена кому давать.

рони 12.06.2013 20:10

Алек,
нерабочий пример здесь разместите используя <> кнопочки возле смайлика :)
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.


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