【问题标题】:WordPress conflict with OOP jQuery Slider PluginWordPress 与 OOP jQuery Slider 插件冲突
【发布时间】:2014-03-01 16:31:21
【问题描述】:

我制作了一个滑块插件,我正在尝试将其移植到 WordPress。但是,当“$”选择器出现时,代码不会运行。

这是我的插件的基本结构,因此您将了解我构建此插件的 OOP 基础。我已经尝试过警报以查看错误在哪里。它似乎就在第一个 $ 符号出现之后。

function slider(target, options) {
    /* Settings
     =============================== */
    var settings = $.extend({
        animation: "myanimation"            
    }, options);
    alert('qq');

    /* Variables
     =============================== */
    var self = this;


    /* Initialization
     =============================== */
    self.init = function() {}
}

并运行插件:

jQuery(function($){
   var myslider = new slider();
   myslider.init();
})

你能帮我解决一下吗?非常感谢!

【问题讨论】:

    标签: jquery jquery-plugins wordpress


    【解决方案1】:

    许多 JavaScript 库使用 $ 作为函数或变量名,就像 jQuery 一样。在 jQuery 的例子中,$ 只是 jQuery 的别名,所以所有功能都可以在不使用 $ 的情况下使用。如果您需要在 jQuery 旁边使用另一个 JavaScript 库,请通过调用 $.noConflict() 将 $ 的控制权返回给另一个库。

    jQuery.noConflict

    【讨论】:

    • 尽管我真的不明白为什么它不能与 IIFE 一起工作,但 noConflict 成功了。谢谢!
    【解决方案2】:

    尝试使用IIFE,并将jQuery 作为参数传递:

    (function($){
      function slider(target, options) {
        /* Settings */
        var settings = $.extend({
          animation: "myanimation"
        }, options);
        alert('qq');
    
        /* Variables */
        var self = this;
    
    
        /* Initialization */
        self.init = function() {}
      }
    })(jQuery);
    

    【讨论】:

    猜你喜欢
    • 2011-06-18
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多