Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разместить 2 одинаковых скрипта на 1 странице (https://javascript.ru/forum/misc/10860-razmestit-2-odinakovykh-skripta-na-1-stranice.html)

Kostyn4ick 26.07.2010 11:04

Каким образом этого можно избежать?

Gvozd 26.07.2010 11:10

Цитата:

Сообщение от DooMer
$(document).ready(function() {

второй скрипт переопределяей функцию ready, поэтому и выполняеться только второй

Глупостей не говори

Kostyn4ick 26.07.2010 12:01

Gvozd, я прислушался к Вашему совету и почитал немного о яве, и подправил второй файл, его измененный код лежит в первом сообщении.

Gvozd 26.07.2010 12:19

Kostyn4ick,
в вашем коде, в тех местах, где вы его поправили, вы сделали это неверно

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

функции в JS являются такими же объектами, как и все остальное.

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

также, в плане общего развития почитайте о замыканиях
хотя, вы сможете исправить код, и без чтения этой статьи, но она окажется полезной, для общего ознакомления.

Kostyn4ick 26.07.2010 12:59

Gvozd, большое спасибо за такой ответ, сейчас засяду за статьи!
+1 вам)

Kostyn4ick 26.07.2010 13:05

как я понял, мою запись $(document).ready(function() необходимо заменить на var fnc = function() и позже вызывать как fnc, или не в ту сторону иду?

Gvozd 26.07.2010 13:08

Цитата:

Сообщение от Kostyn4ick
или не в ту сторону иду?

не в ту.
я ранее упоминал те два объявления функций, которые вам следует поменять.

Kostyn4ick 26.07.2010 13:22

Да, я помню, вы упоминали про вот - это rotate = function()
Что то я совсем не понимаю, эта функция анонимна и объявлена не через var, значит она не глобальна, или не верно?

Kolyaj 26.07.2010 13:26

function rotate() {}


http://dmitrysoshnikov.com/ecmascrip...r-5-functions/

Kostyn4ick 26.07.2010 13:30

Ураааа, заработало, большое всем спасибо за помощь, теперь я понял, что ява слишком отличается от других языков, теперь буду учиться!


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