2016-09-29 45 views
-2

我買了一個WordPress主題,需要通過多個步驟來實現一個複雜的表單。爲此,我正在編寫一個插件併購買了「Timon - Step Form Wizard」。所以,我包括CSS和JS文件,但得到一個錯誤:

VM5199 tsf-wizard-plugin.js?ver=1.0:77Uncaught TypeError: Cannot read property 'extend' of undefined

它發生在下面的代碼片斷的最新行:

jQuery.fn.tsfWizard = function (options) { 

var defaults = 
{ 
    stepStyle: 'style1',  // grumpy step indicator all styles 
    stepEffect: 'basic', 
    showStepNum: true, 
    stepTransition: true,  //true or false 
    validation: false,   //true or false 
    navPosition: 'top',  //'bottom' or top,right,left 
    height: 'auto',   //'auto' or any height (600px,400px etc) 
    showButtons: true, 
    manySteps: false, 
    prevBtn: '<i class="fa fa-chevron-left"></i> PREV', 
    nextBtn: 'NEXT <i class="fa fa-chevron-right"></i>', 
    finishBtn: 'FINISH', 
    disableSteps: 'none',  //all | after_current | before_current | none  
    onSlideChanged: function (e) { }, 
    onNextClick: function (e) { }, 
    onPrevClick: function (e) { }, 
    onPrevClick: function (e) { }, 
    onFinishClick: function (e) { } 
}; 

var settings = $.extend({}, defaults, options); 

在瀏覽器控制檯,它說我,$是未定義但jQuery的原理:

typeof $ 
"undefined" 
typeof jQuery 
"function" 

jQuery是從WordPress裝包括:

<script type='text/javascript' src='http://127.0.0.1/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script> 

我使用jQuery的時間更長,但從來沒有這些問題。什麼可以銷燬$變量?我該如何解決這個問題?

編輯:

我加

<script>$ = jQuery;</script> 

所有其它腳本之前(包括jQuery的)加載,這個固定的問題。但我不明白爲什麼會發生這種情況。

+0

問題是因爲你已經使用了另一個重寫'$'變量的庫。 –

+0

但我沒有其他圖書館,只有modernizr,jQuery和一些jQuery插件。當另一個庫重寫$變量時,它必須是它後面的一些函數。看起來像$沒有做什麼,因爲它是未定義的。 – Lion

+0

在wordpress中使用noconflict比較常見,它刪除'$'只剩下'jQuery' –

回答

0

您的代碼中可能有$.noConflict(),它禁止通過$使用jQuery。

它在多個庫一起使用時可能會發生衝突,因爲它們都使用$來訪問它們的API。