Вызов функции из функции
//вызов главной функции, когда карта готова
ymaps.ready(init);
//главная функция
function init() {
//здесь описание всех функций
function func1(){
//тело
}
function func2(){
//тело
}
function funcN(){}
}
При использовании api яндекс карт от функции "init()" отказаться нельзя, но при этом есть необходимость обращаться к func1(), func2() вне функции "init()", как это возможно сделать? Это читал не помогло! При чем функцию по событию можно вызвать следующим образом:
//вызов главной функции, когда карта готова
ymaps.ready(init);
//главная функция
function init() {
document.getElementById('id').[событие] = function(){
//тело
}
}
Но если одну и ту же функцию нужно вызывать по нескольким событиям - то такой способ не удобен Быть может есть что то вроде, это могло бы упростить задачу:
document.getElementById('id1').[событие] ||
(document.getElementById('id2').[событие]) = function(){
//тело
}
Спасибо за внимание, надеюсь на помощь - очень хочется разобраться1 |
Цитата:
/* так создать */
var o=new init();
/* так вызывать */
o.func1run();
o.func2run();
//главная функция
function init() {
//здесь описание всех функций
function func1(){
//тело
alert(1)
};
/* это нужно дописать */
this.func1run = func1;
function func2(){
//тело
alert(2);
};
/* это нужно дописать */
this.func2run = func2;
};
|
Но предупреждали! :stop:
Цитата:
|
Цитата:
|
Есть какие то минусы от загрязнения комнаты, кроме того что можешь вляпаться в грязь?
|
Цитата:
Нашёл, что могут быть проблемы ещё с подключаемыми библиотеками, спасибо) |
Если ты пишешь код один - то почти никаких.
Если же используются сторонние скрипты или код пишет кто-то ещё, то могут возникнуть коллизии. В лучшем случае код перестанет работать, в худшем - неуловимые баги. |
Цитата:
|
Ну чтоб не загрязнять глобальную область можно просто ограничиться своей функцией:
(function(){
var func1, func2, funcN;
ymaps.ready(init);
//главная функция
function init() {
//здесь описание всех функций
func1 = function func1(){
//тело
}
func2 = function func2(){
//тело
}
funcN = function funcN(){}
}
}());
Только, само собой, надо учитывать, что пока ymaps не загрузится и не запустит init - функции доступны не будут. |
Цитата:
|
| Часовой пояс GMT +3, время: 04:43. |