Я пытаюсь использовать waypoints
с zepto
и RequireJS
.RequireJS + Zepto + Waypoints: Невозможно прочитать свойство «apply» of undefined
Моя конфигурация requireJS выглядит следующим образом:
requirejs : {
options : {
baseUrl : '<%= config.app.js %>',
paths : {
almond : '../node_modules/almond/almond',
zepto : '../node_modules/zepto/zepto.min',
'progressbar' : '../node_modules/progressbar.js/dist/progressbar',
waypoints : '../node_modules/waypoints/lib/zepto.waypoints'
},
shim : {
zepto : {
exports : '$'
}
},
mainConfigFile: '<%= config.app.js %>/common.js',
include : ['common'],
name : 'almond',
out : 'dist/js/<%= pkg.name %>.js',
insertRequire: ['common'],
wrap: true
},
dist : {
options : {
optimize: 'uglify2'
}
},
dev : {
options : {
optimize: 'none'
}
}
},
Кроме того, мой common.js
файл следующим образом:
define(['zepto', 'waypoints'], function($) {
var waypoint = $('#experience').waypoint({
handler: function(direction) {}
});
});
Но когда страница загружена, я получаю следующее сообщение об ошибке:
Uncaught TypeError: Cannot read property 'apply' of undefined
Ошибка, исходит от этой линии на библиотеке waypoints
плагина:
return this.$element[method].apply(this.$element, args)
Когда я отлаживаю код, я вижу, что function ZeptoAdapter(element)
вызывается дважды, один раз с $('#experience')
как элемент, и один раз с window
. Второй раз, когда он терпит неудачу, поскольку this.$element
не определен. Я делаю что-то неправильно? Каков правильный способ включения zepto-плагина?
Спасибо,