Использование собственного плагина Jquery с requireJS
Извините, если я повторяю этот вопрос, но я новичок в requireJS и не совсем понимаю, как это работает.
Я пытаюсь реализовать амазоноподобную навигацию с диагональным перемещением по элементам. Я нашел для этого плагин jQuery ( https://github.com/kamens/jQuery-menu-aim), но я хочу реализовать его с помощью requireJS.
Как правило, вы просто включаете все необходимые скрипты с <script>
тег (Jquery и плагин). Затем вы найдете свою навигацию и назначите некоторые функции для активации / деактивации подменю. Как пример:
<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="../jquery.menu-aim.js" type="text/javascript"></script>
<script src="js/bootstrap.min.js" type="text/javascript"></script>
<script>
var $menu = $(".dropdown-menu");
// jQuery-menu-aim: <meaningful part of the example>
// Hook up events to be fired on menu row activation.
$menu.menuAim({
activate: activateSubmenu,
deactivate: deactivateSubmenu
});
function activateSubmenu(row) {//do something}
function deactivateSubmenu(row) {//do someting else)
</script>
В обязательном порядке. В файле navigation.js вначале мне потребовался плагин меню-прицеливания, и я попытался реализовать его так:
var menuAim = require('lib/menu-aim');
// some code
var $menuT = $('#nav-main-deep');
$menuT.menuAim({
activate: activateSubmenu,
deactivate: deactivateSubmenu
});
function activateSubmenu(){
console.log('test1');
}
function deactivateSubmenu() {
console.log('test2');
}
И я поместил весь плагин menu-aim.js между:
define(function () {
//whole menu-aim plugin
});
Вероятно, это не тот способ, как запустить плагин requireJS, потому что он ничего не делает (я попытался сделать несколько журналов консоли). Я пытался посмотреть на requireJS doc, но я все еще не понимаю, как это сделать правильно. Буду очень благодарен за советы..
1 ответ
Из кода GitHub это выглядит так jQuery-menu-aim
не использует определение универсального модуля, поэтому ему нужна помощь из вашей конфигурации RequireJS.
shim
может помочь RequireJS упорядочить зависимости, так как это плагин jQuery, и jQuery должен быть загружен первым и передан в него. Нажмите здесь для получения дополнительной информации о прокладках RequireJS.
Добавьте этот код в ваш файл конфигурации RequireJS
requirejs.config({
shim: {
'menu-aim': {
deps: ['jquery']
}
}
});
и когда вы звоните
require('lib/menu-aim', function() {
// put your menu code here
});
jQuery и плагин меню будут загружены.