我知道这是一个简单的问题,我在Google上看过但找不到太多帮助。我试图用自己的自定义参数创建一个对象,然后在警报中调用其中一个。

无论我尝试什么,似乎都行不通,我知道这很简单,我深表歉意!我当时所有的其他JS都非常简单,并且全部内联,因此,我现在转向更多的OOP JS。

$.fn.DataBar = function() {

        $.DataBar.defaultOptions = {
            class: 'DataBar',
            text: 'Enter Text Here'
        }

        this.greet = function() {
            alert(this.text);
        };
}

var q = new $.DataBar();
q.greet();

最佳答案

  • 您不需要fn部分,只需使用:
    $.DataBar = function () { ... };
    
    $.fn只是对jQuery内部原型(prototype)的引用。因此,$.fn.DataBar打算用作$(selector).DataBar(),而不是$.DataBar()
  • 您的默认选项未应用于新创建的对象。 (可选)您还可以在greet的原型(prototype)上定义DataBar函数:
    $.DataBar = function () {
        $.extend(this, $.DataBar.defaultOptions);
    };
    
    $.DataBar.prototype.greet = function () {
        alert(this.text);
    };
    
    $.DataBar.defaultOptions = {
        class: 'DataBar',
        text: 'Enter Text Here'
    };
    
  • 09-07 03:36