如何访问一个非全局的函数,它存在于另一个js文件中?

时间:2015-11-10 10:47:58

标签: javascript jquery

我有以下js文件,我想从另一个函数访问一个函数,但我在另一个js文件中调用它。我在调用Uncaught ReferenceError: vidPause is not defined时收到此错误。

(function($) {
    $.fn.controlls = function(opt) {
    ......
    function init() {
    .....
    }
    function vidPause(e){
       e.stopPropagation();
       $.fn.controlls.toggleBarPlayingButtons('pause');
       video.pause();
    }
    .....

从这个js文件中我想在另一个js文件中的以下函数中调用vidPause

function myFunction(e) {
    if (video) {
        $('video').controlls(vidPause());

1 个答案:

答案 0 :(得分:0)

这个问题是范围。

init()vidPause()(function($) {电话的私密内容。它们不会像您尝试访问它们那样直接访问。

许多jquery插件使用文本(不是我的偏好,但它们是如何工作的),例如$ .dialog(" open"),所以你可以做类似的事情(不确定是否opt意味着行动,因此相应更新):

(function($) {
    $.fn.controlls = function(action, opt) {
        switch (action) {
            case "pause":
                vidPause(opt);
                break;
            ...

使用

$('video').controlls("pause");

有可能像使用命名空间一样添加方法,但是我没有在插件中看到这一点,所以取决于你使用插件做什么(即释放它)是否要保持一致,例如:

(function($) { 
    $.fn.controlls = {};
    $.fn.controlls.pause = function(opt) {
        video.pause();
        ...

使用

$('video').controlls.pause()