snipt

Ctrl+h for KB shortcuts

JavaScript

Submenu hiding after a delay (jQuery)

1
2
3
4
5
6
7
8
9
$('#main_menu li:has(ul)').on('hover', function(e) {
    var ul = $(this).parent().find('ul'); 
    if ($(ul).is(':visible') === true) {
        $(ul).delay(700).hide(0);
    }
    else {$(ul).show(0);}
    // $(this).parent().find('ul').not(':has(li.current)').toggle(); //или
    // e.preventDefault();
});
https://snipt.net/embed/8b87df44f9d33de9ae29930c594c8fd1/
/raw/8b87df44f9d33de9ae29930c594c8fd1/
8b87df44f9d33de9ae29930c594c8fd1
js
JavaScript
9
2019-08-19T16:45:32
True
False
False
/api/public/snipt/49634/
submenu-hiding-after-a-delay-jquery
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1">1</a> <a href="#L-2">2</a> <a href="#L-3">3</a> <a href="#L-4">4</a> <a href="#L-5">5</a> <a href="#L-6">6</a> <a href="#L-7">7</a> <a href="#L-8">8</a> <a href="#L-9">9</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="nx">$</span><span class="p">(</span><span class="s1">&#39;#main_menu li:has(ul)&#39;</span><span class="p">).</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;hover&#39;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span> <span class="p">{</span> </span><span id="L-2"><a name="L-2"></a> <span class="kd">var</span> <span class="nx">ul</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="k">this</span><span class="p">).</span><span class="nx">parent</span><span class="p">().</span><span class="nx">find</span><span class="p">(</span><span class="s1">&#39;ul&#39;</span><span class="p">);</span> </span><span id="L-3"><a name="L-3"></a> <span class="k">if</span> <span class="p">(</span><span class="nx">$</span><span class="p">(</span><span class="nx">ul</span><span class="p">).</span><span class="nx">is</span><span class="p">(</span><span class="s1">&#39;:visible&#39;</span><span class="p">)</span> <span class="o">===</span> <span class="kc">true</span><span class="p">)</span> <span class="p">{</span> </span><span id="L-4"><a name="L-4"></a> <span class="nx">$</span><span class="p">(</span><span class="nx">ul</span><span class="p">).</span><span class="nx">delay</span><span class="p">(</span><span class="mi">700</span><span class="p">).</span><span class="nx">hide</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span> </span><span id="L-5"><a name="L-5"></a> <span class="p">}</span> </span><span id="L-6"><a name="L-6"></a> <span class="k">else</span> <span class="p">{</span><span class="nx">$</span><span class="p">(</span><span class="nx">ul</span><span class="p">).</span><span class="nx">show</span><span class="p">(</span><span class="mi">0</span><span class="p">);}</span> </span><span id="L-7"><a name="L-7"></a> <span class="c1">// $(this).parent().find(&#39;ul&#39;).not(&#39;:has(li.current)&#39;).toggle(); //или</span> </span><span id="L-8"><a name="L-8"></a> <span class="c1">// e.preventDefault();</span> </span><span id="L-9"><a name="L-9"></a><span class="p">});</span> </span></pre></div> </td></tr></table>
accessibility, javascript, jquery, menu, usability