首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从全局范围调用jQuery中的函数

从全局范围调用jQuery中的函数
EN

Stack Overflow用户
提问于 2013-12-18 20:56:49
回答 4查看 20.5K关注 0票数 4

我见过几个与此相关的问题,但没有一个问题提供了明确的答案。

在这个JavaScript中:

代码语言:javascript
运行
复制
function global_function() {
    a_jquery_function();
}

$(function () {
    var a_jquery_function = function () {
        do_something();
    };
});

我可以做一些事情,以便全局函数可以调用jQuery函数吗?显然,它不能像我在那里那样做,但我想知道它是否可以使用jQuery.fn或使用自定义事件。例如:

代码语言:javascript
运行
复制
function global_function() {
    $.fn.a_jquery_function();
}

$(function () {
    $.fn.a_jquery_function() = function () {
        do_something();
    };
});

代码语言:javascript
运行
复制
function global_function() {
    trigger_event('my_event', args);
}

$(function () {
    $(document).on('my_event', function(args) {
        do_something();
    });
});

我试过第一个,但遇到了问题。如果我知道这两种方法都有可能的话,我会更多地研究它们。但如果有人知道这是不可能的,我想我将不得不放弃它。

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-18 21:06:19

如果不想污染全局命名空间,请创建对象并向其追加函数。

代码语言:javascript
运行
复制
var myModule = {};
$(function(){
    var foo = function(){/*code*/};
    myModule.bar = foo;
});

然后使用myModule.bar()从任何地方调用您的函数;

票数 7
EN

Stack Overflow用户

发布于 2013-12-18 21:09:32

您可以将函数附加到jQuery命名空间,在某种意义上将它们转换为jQuery插件。到那时,无论jquery在哪里,它们都是可用的。

代码语言:javascript
运行
复制
function global_function() {
    $.a_jquery_function();
}

$(function () {
    $.a_jquery_function = function () {
        do_something();
    };
});
票数 12
EN

Stack Overflow用户

发布于 2013-12-18 21:00:20

在声明您希望全局可用的函数时,应该使用var functionname=function(){},而不是使用window.functionname=function{}。所有全局函数都是window对象的属性,但相反,window对象的所有属性都是全局函数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20668220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档