如何挂钩 MMenu 事件?

Posted

技术标签:

【中文标题】如何挂钩 MMenu 事件?【英文标题】:How to hook into MMenu event? 【发布时间】:2015-06-05 10:49:38 【问题描述】:

我已经成功地为 MMenu jquery 插件添加了一个搜索工具。它工作得很好,除了一件事:当搜索文本框出现时,我想将焦点设置为它。到目前为止,我已经通过向文本框的父级添加一个“onmouseover”事件处理程序来实现这一点,该文本框是当前可见的表示“页面”的“ul”。它有点工作但很笨拙,因为用户需要将光标移动到指定区域。在移动设备上,我怀疑它根本无法工作

我正在寻找一种方法来连接 MMenu 的事件处理程序,该处理程序会打开搜索文本框所在的页面。这是我正在处理的 html 代码示例:

<nav id="menu" class="mm-menu mm-horizontal mm-offcanvas mm-current mm-opened">
<ul id="mm-0" class="mm-list mm-panel mm-opened mm-subopened">
<ul id="mm-1" class="mm-list mm-panel mm-highest mm-current mm-opened">
<li class="mm-subtitle">
      Search for:  
<input id="search" type="text" onkeyup="HandleSearchInput(this);" size="20">
<br>
<div id="searchResults" style="margin:10px 10px 0 20px">
</ul>
<ul id="mm-2" class="mm-list mm-panel mm-hidden">
<ul id="mm-3" class="mm-list mm-panel mm-hidden">
<ul id="mm-4" class="mm-list mm-panel mm-hidden">
<ul id="mm-5" class="mm-list mm-panel mm-hidden">
<ul id="mm-6" class="mm-list mm-panel mm-hidden">
<ul id="mm-7" class="mm-list mm-panel mm-hidden">
<ul id="mm-8" class="mm-list mm-panel mm-hidden">
<ul id="mm-9" class="mm-list mm-panel mm-hidden">
<ul id="mm-10" class="mm-list mm-panel mm-hidden">
<ul id="mm-11" class="mm-list mm-panel mm-hidden">
<ul id="mm-12" class="mm-list mm-panel mm-hidden">
<ul id="mm-13" class="mm-list mm-panel mm-hidden">
<ul id="mm-14" class="mm-list mm-panel mm-hidden">
</nav>

有人知道怎么做吗?

罗伯特·W.

【问题讨论】:

【参考方案1】:

根据新的mmenu 版本并使用its off-canvas hooks,您可以实现此目的。 HTML

<nav id="menu">
    <ul>            
        <li><input type="text" id="search" placeholder="Search..."></li>
    </ul>
</nav>

JS

document.addEventListener(
    "DOMContentLoaded", () => 
        new Mmenu( "#menu",
            hooks:
                open:finish: () => 
                    $('#search').focus();
                
            
        );
    
);

【讨论】:

以上是关于如何挂钩 MMenu 事件?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery'mmenu'打开时的回调事件

jQuery 'mmenu' 关闭时的回调事件

如何使用 useEffect 挂钩注册事件?

如何防止在单击事件上触发两个相同的 useState 挂钩

C#:Excel 2007 插件,如何挂钩 Windows 激活和停用事件

如何正确地将事件侦听器添加到 React useEffect 挂钩?