【问题标题】:Mixing javascript and jquery within namespace在命名空间中混合 javascript 和 jquery
【发布时间】:2012-05-02 13:08:17
【问题描述】:

几周前让 jquery 在 firebug 中运行时遇到了麻烦(尤其是在 drupal 网站上)。显然问题是 Drupal 正在抓取 $ 变量,所以我得到了一个小命名空间 sn-p (function($)...(Jquery));收回了美元。我一直在 firebug 中使用命名空间,但得到的结果不一致,尤其是在命名空间中混合纯 javascript 和 Jquery 时。我知道所有 Jquery 都是 javascript 并且它们一起工作,但是查看示例我发现人们部署此命名空间的方式有一些奇怪的变化。作为一个一般性问题,但也特别是在 Firebug 上下文中,是否需要将 javascript 放在与命名空间 Jquery 的任何特定关系中(在命名空间内、内部函数调用、函数输出或任何其他约定)? 谢谢

【问题讨论】:

    标签: javascript jquery namespaces firebug


    【解决方案1】:

    如果您的意思是阻止 $ 被回收,则没有约定,但有办法。其他框架也使用$ 名称。稍后声明使用$ 的任何内容都将接管$。但是,您可以阻止它或绕过它。

    jQuery 提供了很多方法来防止它通过它的noConflict() 方法。但我首选的方法是将它们包装在一个函数中。 jQuery 还使用 jQuery 命名空间。 $ 是一个简写别名,也是一个很常见的别名。所以像$.each() 这样的函数也是jQuery.each()。到底哪个疯狂的框架使用 jQuery 作为其命名空间?

    一个封装在函数中的例子是这样的:

    (function($){
    
        //inside here, "$" is jQuery
    
    }(jQuery)); //pass "jQuery"
    

    【讨论】:

    • 是的,谢谢,这与我的命名空间 sn-p 相同,我想我只是对 javascript 和命名空间更感兴趣。我试图通过查看堆栈溢出示例来弄清楚这个 sn-p 的使用,我看到了很多奇怪的事情。人们严格分离 js,不允许在 jquery 命名空间中使用任何东西,我还看到有人将 javascript 函数调用保留在 jquery 命名空间内,但所有实际函数都定义在它之外,我只是不明白为什么?
    • 我想我应该补充一下,我有时会在 firebug 控制台中遇到奇怪的问题,我通过分离 jquery 和纯 js 神奇地解决了这些问题,传统观点认为这无关紧要,但我有通过这样做神奇地修复了代码,有点想深入了解它?
    猜你喜欢
    • 2011-11-26
    • 2015-11-15
    • 1970-01-01
    • 2015-03-29
    • 2012-03-29
    • 2012-04-03
    • 2015-11-15
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多