Jump to content
  • 0

Функции в JavaScript


YISHIMITSY
 Share

Question

Здравствуйте! Есть код:

function Change(obj,property,value)

{

obj = document.getElementById(obj);

obj.style[property] = value;

return obj;

}

window.onload = function()

{

Change('test','color','red')

}

Когда функция Change вызывается на событие onload (или любое другое) всё нормально. Вопрос: можно ли сделать так, чтобы она вызывалась не на событие а самостоятельно? вроде такого:

function Change(obj,property,value)

{

obj = document.getElementById(obj);

obj.style[property] = value;

return obj;

}

Change('test','color','red'); // стили должны изменится

Как мне заставить работать такой код?

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0
А если нужно в хеаде... переделать определение функции для такого вызова как-нибудь можно?

Значит помести в Хеад в соответствующие теги, а вообще лучше подключи отдельные модули.

Link to comment
Share on other sites

  • 0

Я пробовал помещать в

<script></script>

после тега body, - работает нормально, но если вынести во внешний js-файл он должен быть подключён тоже после body, иначе не работает, а нужно чтоб скрипт был прописан в head или body

Link to comment
Share on other sites

  • 0
Я пробовал помещать в
<script></script>

после тега body, - работает нормально, но если вынести во внешний js-файл он должен быть подключён тоже после body, иначе не работает, а нужно чтоб скрипт был прописан в head или body

Так ты адрес-то в теге пропиши

Link to comment
Share on other sites

  • 0
Я пробовал помещать в
<script></script>

после тега body, - работает нормально, но если вынести во внешний js-файл он должен быть подключён тоже после body, иначе не работает, а нужно чтоб скрипт был прописан в head или body

Зачем?

Ему самое место после body.

Link to comment
Share on other sites

  • 0
Так ты адрес-то в теге пропиши

Ну вот:


<head>
<script src="function.js"></script> <!-- тут функция создана -->
</head>
<body>
...
</body>
<script src="myscript.js"></script> <!-- тут она вызвана -->

Но по стандарту HTML ведь скрипты подключаются в хеад или в боди... а тогда она не вызывается... Просто в js-фреймворках функции вызываются в любом месте и работают прям с ходу, хочу понять как это сделанно

Edited by YISHIMITSY
Link to comment
Share on other sites

  • 0

Тут дело в том, что если вы подключаете скрипт, вызывающий эту функцию в head, то браузер загрузит его и попытается выполнить функцию до того, как элемент появится на странице. На момент вызова функции его еще нет — он не загрузился.

Поэтому и срабатывает вариант, когда скрипт подключен после body.

Ну или можно вызывать функцию по какому-нибудь событию, когда документ уже готов, чтобы скрипт к нему обращался. window.onload, например.

Link to comment
Share on other sites

  • 0

И вот ещё, хотел спросить у профессионалов: если весь код JavaScript (код оч большой) объединён под одной функцией и все остальные вложены в неё, хорошо это или плохо с технической точки хрения?

Link to comment
Share on other sites

  • 0
И вот ещё, хотел спросить у профессионалов: если весь код JavaScript (код оч большой) объединён под одной функцией и все остальные вложены в неё, хорошо это или плохо с технической точки хрения?

Пофиг. Кто как хочет, так в газетку и заворачивает.

Link to comment
Share on other sites

  • 0

Мне вот интересно чем window.onload не устраивает?

И почему скрипт надо инициировать именно после <body>, нельзя что-ли сделать так:

<body>
тут идет весь документ
<script></script>
</body>

Link to comment
Share on other sites

  • 0
Мне вот интересно чем window.onload не устраивает?

И почему скрипт надо инициировать именно после <body>, нельзя что-ли сделать так:

<body>
тут идет весь документ
<script></script>
</body>

Устраивает. Но для мелких сайтов.

Почему сразу после бади? Потому что там у бади цвет меняется.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy