代码之家  ›  专栏  ›  技术社区  ›  Alex

jquery-函数冲突

  •  0
  • Alex  · 技术社区  · 14 年前

    我有一个WordPress主题,并且在其中使用了一些jQuery插件。问题是这些插件中的一些包含在其他wp插件中,因此js会因为命名冲突而中断。

    我想知道是否有一种方法可以将一组函数或.js文件从HTML文档中包含的其余脚本中分离出来。

    比如:

    function wrap(){
    
      plugin functions...
      plugin functions...
    
    }
    
    jQuery(document).ready(function($){
       wrap.pluginfunction()...
       wrap.pluginfunction()...
    });
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   cdhowie    14 年前

    最简单的方法是这样包装整个脚本:

    var someNewNamespace = (function () {
        // Script goes here
    
        // If you want to expose functions on the namespace:
        var that = {};
    
        // Declare a new function to expose:
        that.someFunction = function () {
            // ...
        };
    
        // Expose a function declared previously:
        that.someOtherFunction = someFunctionDeclaredPreviously;
    
        return that;
    }();
    

    这将有效地为脚本创建一个新的命名空间。这个 someNewNamespace 对象的成员如下 someFunction 执行后。在匿名外部函数中声明但未通过 that 将无法从脚本外部访问对象。

        2
  •  1
  •   Wolph    14 年前

    jquery有一个 noConflict() 方法,这样它就不会杀死其他库。

    打电话就行了 jQuery.noConflict(); 在加载jquery库之后,应该对您进行设置。