将Mmenu插件集成到Vue.js项目中

时间:2018-01-30 07:36:38

标签: javascript jquery vuejs2 mmenu

如何在Vue.js中集成mmenu jQuery插件? 我插入了index.html中的mmenu:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jQuery.mmenu/7.0.1/jquery.mmenu.all.css">

<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery.mmenu/7.0.1/jquery.mmenu.all.js"></script>

因此,它被包含在整个项目中。但是,我不能在我的Vue组件中使用它。我在created()方法中初始化了 mmenu 插件:

created() {
    $('#menu').mmenu();
}

标记:

<a href="#menu">Menu</a>
<!-- The menu -->
<nav id="menu">
    <ul>
        <li><router-link to="/">Home</router-link></li>
        <li><router-link to="/about">About</router-link></li>
        <li><router-link to="/contacts">Contact us</router-link></li>
    </ul>
</nav>

但似乎没有效果。我需要做些什么才能让它以正确的方式运作?

2 个答案:

答案 0 :(得分:1)

首先检查控制台中是否存在javascript错误。然后,在本手册的帮助下,尝试使用API​​ open()方法打开面板。我认为这不仅仅是Vue.js

答案 1 :(得分:0)

如果仍然有兴趣,我可以通过以下方式解决:

<template>
    <div class="mobile-menu">
        <a href="#menu">
            <span></span>
        </a>
        <nav id="menu">
            <!-- menu list to insert here -->
        </nav>
    </div>
</template>

<script>
import 'mmenu-js/dist/mmenu.css'
import 'mmenu-js/dist/mmenu.js'

export default {
    mounted() {
        new Mmenu(document.querySelector('#menu'))

        document.addEventListener('click', evnt => {
            let anchor = evnt.target.closest('a[href^="#/"]')
            if (anchor) {
                // Go somewhere
                evnt.preventDefault()
            }
        })
    }
}
</script>