2013-12-10 72 views
1

我有以下模塊與jQuery Cookie的依賴關係。我如何去傳遞$ .cookie或jQuery.cookie到匿名函數中?現在,因爲我不傳遞任何它的失敗在我的控制檯與以下錯誤消息:如何在模塊定義中使用RequireJS需要jQuery Cookie?

Uncaught TypeError: Cannot call method 'cookie' of undefined

我的代碼如下所示:

define(['//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js', '//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.3.1/jquery.cookie.min.js'], function($) { 

    return function themeSwitcher(initTheme) { 
    var body = document.body, 
     main = document.querySelector('main'), 
     activeTheme = body.classList, 
     theme = document.querySelectorAll('.theme-switcher li'); 

    if ($.cookie('userTheme')) { 
     $(body).removeClass(activeTheme[0]) 
     $(body).addClass($.cookie('userTheme')); 
    } else { 
     $(body).addClass(initTheme); 
    } 

    for (var i = 0; i < theme.length; i++) { 
     theme[i].addEventListener('click', function(e) { 
     var userTheme = e.target.className; 

     if (!$.cookie('userTheme')) { 
      $.cookie('userTheme', userTheme, { expires: 7, path: '/' }); 
      $(body).removeClass(activeTheme[0]); 
      $(body).addClass($.cookie('userTheme')); 
     } else { 
      $.removeCookie('userTheme'); 
      $.cookie('userTheme', userTheme, { expires: 7, path: '/' }); 
      $(body).removeClass(activeTheme[0]); 
      $(body).addClass($.cookie('userTheme')); 
     } 

     }, false); 

    } 

    } 

}); 
+0

我不應該將任何東西傳入兩個依賴項之一的匿名函數嗎? – Matt

回答

0

jQuery的餅乾從支持AMD版本號1.4.0+
您正在使用的版本1.3.1不支持它。

相關問題