-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的)加載,這個固定的問題。但我不明白爲什麼會發生這種情況。
問題是因爲你已經使用了另一個重寫'$'變量的庫。 –
但我沒有其他圖書館,只有modernizr,jQuery和一些jQuery插件。當另一個庫重寫$變量時,它必須是它後面的一些函數。看起來像$沒有做什麼,因爲它是未定義的。 – Lion
在wordpress中使用noconflict比較常見,它刪除'$'只剩下'jQuery' –