0
我写了一些jQuery,当鼠标进入区域时,jQuery删除一个显示:hide;属性。点击ancor标签后,jQuery mouseover将不起作用
它在第一次加载页面时起作用,但是,当其中一个锚标签被点击时,它在未隐藏的元素中,鼠标打开菜单,但一旦鼠标移到上面时不会保持打开状态菜单。
我该如何解决这个问题?
$(document).ready(function() {
$('#kDropdown, .hidden-dropdown .row .columns').bind('mouseenter', function(e) {
$(".hidden-dropdown").removeClass("hide");
});
$('#kDropdown, .hidden-dropdown .row .columns').bind('mouseleave', function(e) {
$('.hidden-dropdown').addClass("hide");
})
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hidden-dropdown hide">
<div class="row">
<div class="small-6 large-6 columns">
<ul style="position: relative; float: left;">
<li><a href="#">Motion Sensor</a></li>
<li><a href="#">Water Detector</a></li>
<li><a href="#">Smart Plug</a></li>
<li><a href="#">Door Sensor</a></li>
<li><a href="#">Door Sensor Pro</a></li>
</ul>
<ul style="position: relative; float: right;">
<li><a href="#">Z-Wave Extender</a></li>
<li><a href="#">Siren</a></li>
<li><a href="#">Mouser</a></li>
<li><a href="#">Water Valve</a></li>
</ul>
</div>
<!-- Trigger to open-->
<div class="hidden-dropdown hide">
<div class="row">
<div class="small-6 large-6 columns">
<ul style="position: relative; float: left;">
<li><a href="#">Motion Sensor</a></li>
<li><a href="#">Water Detector</a></li>
<li><a href="#">Smart Plug</a></li>
<li><a href="#">Door Sensor</a></li>
<li><a href="#">Door Sensor Pro</a></li>
</ul>
<ul style="position: relative; float: right;">
<li><a href="#">Z-Wave Extender</a></li>
<li><a href="#">Siren</a></li>
<li><a href="#">Mouser</a></li>
<li><a href="#">Water Valve</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
你举的例子是不完整的。假设你的'hide' css类是'display:none;'你的例子中没有任何东西被渲染,因为每个东西都有隐藏类。 – RayfenWindspear
.hide类是display:none;我有jQuery呈现它。问题是它不会留下来。 – Quesofat
@RayfenWindspear是正确的 - 一切都默认隐藏,所以没有什么可以触发mouseenter事件。我注意到你嵌套了“隐藏下拉”对象,你是否只想隐藏嵌套层次? – Lopsided