2016-08-11 112 views
0

我正在尝试为向导编写Bootstrap 3自定义插件。到目前为止,我确实没问题,但是我很难创建返回当前活动页面的方法。Bootstrap自定义插件 - Getter方法

我希望做到以下几点:

var activePage = $('#wizard').wizard("getActivePage"); // should return the page number 

我适配器在标准的引导代码中发现的例子:

来源:

if (typeof option == 'string') data[option](args); 

要:

if (typeof option == 'string') return data[option](args); 

An d有以下代码中的功能:

getActivePage() { 
    return this.currentPage; 
} 

但是,它返回的是JQuery对象而不是页码。

有没有办法做到这一点,或者我对这一切都有错?

+0

给出一些详细的代码是当前页面变量和getactivepage定义 –

回答

0

好了,想着这对于多一点的时间后,我意识到,插件功能的默认功能是它返回JQuery的链条问题(道歉,下面通过一些打字稿):

我原本有:

function Plugin(option, args) { 

    return this.each(function() { 
     var $this = $(this); 
     var data = $this.data('xyz.wizard'); 
     var options = $.extend(option, Wizard.DEFAULTS) as WizardOptions; 

     if (!data) { 
      data = new Wizard(this, options); 
      $this.data('xyz.wizard', data); 
     } 
     if (typeof option === 'string') return data[option](args); 
    }); 
} 

,然后在顶部增加了一个新的部分:

function Plugin(option, args) { 

    // New Part - If option is a string, then call the named method and return the result 
    if (typeof option === 'string') { 
     var data = $(this).data('xyz.wizard'); 
     if(data) { 
      return data[option](args); 
     } 
    } 

    // Otherwise do the default 
    return this.each(function() { 
     var $this = $(this); 
     var data = $this.data('xyz.wizard'); 
     var options = $.extend(option, Wizard.DEFAULTS) as WizardOptions; 

     if (!data) { 
      data = new Wizard(this, options); 
      $this.data('xyz.wizard', data); 
     } 
     // if (typeof option === 'string') return data[option](args); 
    }); 
} 

它似乎工作,但我不知道这是否是CORRE ct方法。