iT邦幫忙

1

Swiper.js搭配requireJS,出現Swiper is not defined

各位前輩大大好,
當我使用requireJS將Swiper引入的時候,在sources的地方可以看見Swiper的身影,

在console直接呼叫swiper卻出現Swiper is not defined。

然而當我改用script tag的方式直接引入就不會有這個問題。

補充,附上兩種做法的原始碼與結果
////////////////////////作法一/////////////////////////

require.config({
    paths: {
        jquery: "../scripts/jquery-3.2.1.min",
        swiper: "../scripts/swiper/js/swiper",
    },
    shim: {
        'swiper':{
            deps:["jquery"]
        }
    }
});
require(['jquery','swiper'], function (jquery,swiper){
    console.log(Swiper);
});

////////////////////////作法二/////////////////////////

<script src="scripts/swiper/js/swiper.js"></script>
<script src="scripts/require.js" defer async="true" data-main="js/index"></script>
require.config({
    paths: {
        jquery: "../scripts/jquery-3.2.1.min"
    },
    shim: {
    }
});
require(['jquery'], function (jquery){
    console.log(Swiper);
});


還請各位大大幫幫忙QQ

更新
找到原因了,是在require的callback裡面沒給Swiper的參數...

小魚 iT邦高手 1 級 ‧ 2018-01-24 12:03:08 檢舉
你這兩種方法的原始碼呢?
fillano iT邦超人 1 級 ‧ 2018-01-26 13:28:49 檢舉
他會照你要求的順序,注入給你的callback。但是...你callback的參數是小寫:`swiper`,而`console.log(Swiper)`裡面是大寫。

尚未有邦友回答

立即登入回答