Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.01.2011, 16:03
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

Область видимости функции
Привет всем!
В index.php подключается отдельный js файл, namefile.js, в котором имеем простую функцию:
$(document).ready(function() {
  function f(){
     alert('123');
  }
});

В index.php есть такой js код:
$(document).ready(function() {
  f();
});


Подскажите, как сделать, так чтобы функция f из namefile.js, вызвалась без ошибок в index.js?
Буду очень признателен, за помощь
Ответить с цитированием
  #2 (permalink)  
Старый 31.01.2011, 16:14
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

$(document).ready(function() {
 f = function(){
     alert('123');
  }
});

НО! f станет глобальной. Что может повлечь за собой проблемы в других местах разных функий.

Во вторых. Зачем вам использовать в индексе функцию которая подключается им же?
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
  #3 (permalink)  
Старый 31.01.2011, 16:18
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

PeaceCoder, я специально существенно упросил код. Я бы конечно мог сделать функцию в index.php, но если я буду так делать, то это будет просто бардак. Мну нужно вызывать отдельные функции из разных подключаемых файлов, аккуратненько разложенных по всему проекту.
А как бы вы поступили?
Ответить с цитированием
  #4 (permalink)  
Старый 31.01.2011, 16:25
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от DenQ
А как бы вы поступили?
Ну так как и поступаю сейчас. стати такая проблема сейчас во всех современных цмс. Подключая модуль - он гадит в глобал.
Выделите какуюто переменную например INCS. Она единственная будет глобальной. А в подключаемых файлах присоединяйте все функции/данные к ней. При этом у Вас будет доступ к ним, а они в свою очередь не будут гадить в глобал. Все красиво и аккуратно
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
  #5 (permalink)  
Старый 31.01.2011, 16:48
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,805

для этого в файле namefile.js уберите обработчик события
$(document).ready(function() {
  function f(){
     alert('123');
  }
});

и сделайте просто
function f(){
     alert('123');
  }
__________________
.
Ответить с цитированием
  #6 (permalink)  
Старый 31.01.2011, 17:02
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

Skipp, я не просто так беру функции в "обертку" jquery.
Ответить с цитированием
  #7 (permalink)  
Старый 02.02.2011, 08:05
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,382

Сообщение от DenQ Посмотреть сообщение
Skipp, я не просто так беру функции в "обертку" jquery.
а зачем? Она тогда и будет видима внутри этой обертки. Варианты решения - выше
Ответить с цитированием
  #8 (permalink)  
Старый 02.02.2011, 13:21
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

Сообщение от micscr
а зачем?
Что бы использовать функционал jQuery. Повторюсь, я специально существенно упростил код.
Ответить с цитированием
  #9 (permalink)  
Старый 02.02.2011, 15:28
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,805

какой ещё функционал???
у вас функция вызывается до её создания, что тут упрощаете вы?
__________________
.
Ответить с цитированием
  #10 (permalink)  
Старый 02.02.2011, 15:42
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,382

Сообщение от DenQ Посмотреть сообщение
Что бы использовать функционал jQuery. Повторюсь, я специально существенно упростил код.
в смысле не приводишь всего, чтоб мы поняли? Выкладывай, мы не пугливые.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
область видимости переменных jetli13 Общие вопросы Javascript 3 17.09.2010 10:00
Область видимости внутри функции YISHIMITSY Общие вопросы Javascript 1 25.08.2010 05:50
Область видимости методов mexoboy Общие вопросы Javascript 10 10.08.2010 12:09
Область видимости переменной. noumo Events/DOM/Window 3 03.12.2009 22:48
можно ли включить функцию в глобальную область видимости из файла maxval Элементы интерфейса 13 04.10.2009 06:11