我有一个从左侧出来的推送菜单,效果很好,但是我很难应用多个关闭菜单'推送菜单中的链接。
我已尝试更改“查询选择器”'到'querySelectorAll'但这打破了推送菜单。
这种菜单的原因是因为我将使用内容切换器,而不是转到其他网页。
可以使用工作版here
HTML JavaScript
var str = "hello, <b>my name is</b> jQuery.",
html = $.parseHTML( str ),
// Append the parsed HTML
$("#anyDomElement").append( html );`
的jQuery
<div id="wrapper">
<div id="container">
<header>
<button id="c-button--push-left" class="c-button close-menu"></button>
</header>
</div>
</div>
<div id="c-menu--push-left" class="c-menu c-menu--push-left">
<div class="c-menu__close close-menu"></div>
<nav>
<ul>
<li><a id="home" class="close-menu">Home</a></li>
<li><a id="work" class="close-menu">Work</a></li>
</ul>
</nav>
</div>
<div id="c-mask" class="c-mask"></div>
<script type="text/javascript">
var pushLeft = new Menu({
wrapper: '#wrapper',
type: 'push-left',
menuOpenerClass: '.close-menu',
maskId: '#c-mask',
});
var pushLeftBtn = document.querySelector('#c-button--push-left');
pushLeftBtn.addEventListener('click', function(e) {
e.preventDefault;
pushLeft.open();
});
</script>
答案 0 :(得分:0)
只需使用querySelectorAll
并在Menu.prototype._initEvents
中使用此代码迭代closeBtn,因为它是数组,您应该将其重命名为 closeButtons 左右。
for (var i = 0; i < this.closeBtn.length; ++i) {
this.closeBtn[i].addEventListener('click', function(e) {
e.preventDefault();
this.close();
}.bind(this));
}