2016-06-15 2 views
-1

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

external.js is the third party library which i shouldn't edit

jQuery(function(){ 
    var submit_clicked={ 
    cart_submit: function() { 
    alert("yes variable function is have scope outside"); 
    } 
    } 

}); 

В моей стороне я называю внутренней JavaScript что-то вроде

jQuery(function() { 
    alert(submit_clicked.cart_submit); 
}); 

это означает

Reference Error: submit_clicked is not defined

не уверен, как преодолеть эту проблему. Может кто-нибудь предложить некоторые идеи будут здоровыми :)

Вот моя скрипка. https://jsfiddle.net/rr2v4fhb/

FYI: Я вызываю свой скрипт рядом с внешним js, но тем не менее эта область недоступна.

+2

Определите функцию 'submit_clicked' * снаружи * функции jQuery ready handler во внешнем файле. Если у вас есть несколько файлов, все из которых должны иметь доступ к другим переменным, вы должны посмотреть на создание собственного пространства имен. –

+0

Знаете ли вы, что означают локальные и глобальные переменные? [Посмотрите на JS-модули] (https://medium.freecodecamp.com/javascript-modules-a-beginner-s-guide-783f7d7a5fcc#.sap2mg3ug) –

ответ

1

Проблема заключается в файле external.js. Объявите переменную за пределами обработчика jquery(), и это должно решить вашу проблему!

Если внешний файл не редактируется, вы не можете получить доступ к переменной из-за своей области, которая является локальной (вам нужна глобальная переменная).

Смежные вопросы