Javascript 如何使用全局变量访问jQuery中的插件方法?

Javascript 如何使用全局变量访问jQuery中的插件方法?,javascript,jquery,global-variables,Javascript,Jquery,Global Variables,我使用jQuery的经验有限,因此,如果措辞不正确,请随意编辑问题 启动插件时,我将其分配给一个变量: var test = $('.fancybox').fancybox({ padding : 0, margin : 10, closeBtn : false }); 现在,我尝试访问插件实例并调用其方法,如下所示: $(document).on('keyup', function(e) { var code =

我使用jQuery的经验有限,因此,如果措辞不正确,请随意编辑问题

启动插件时,我将其分配给一个变量:

var test = $('.fancybox').fancybox({
    padding         : 0,
    margin          : 10,
    closeBtn        : false
});
现在,我尝试访问插件实例并调用其方法,如下所示:

$(document).on('keyup', function(e) {
    var code = (e.keyCode ? e.keyCode : e.which);

    if (code == 40) {
        test.cancel();
        return false;
    }
});

这将抛出错误-“测试未定义”。根据我的理解,这似乎是变量
test
范围的问题。但是,
test
已在
jQuery(document).ready(function($)
中声明,因此应该对
jQuery(document).ready(function($)中的函数全局可用
。我做错了什么?

@pmandell为什么它会工作?我不明白为什么
测试
会是未定义的。你能在一个billyonecan中重现这个问题吗?我没有用fiddle测试过。但是,这个问题不仅仅是一个插件。我在页面上加载的所有插件都显示出相同的问题。两者都是吗在同一个
$(document).ready(function()
)中的上述代码块中,根据您所了解的情况,我认为这是导致问题的唯一原因said@billyonecan两者都在同一个
$(document).ready(function()
)中。