javascript - jquery hover 隐藏在子元素上

标签 javascript jquery html hover jquery-hover

drop down

实例:http://jsbin.com/axaqoc/2

当我尝试选择子选择框时,下拉菜单隐藏起来,以为鼠标离开了父元素。

js代码:(完整代码:http://pastie.org/2624436)

$('.dropOption').hover(function(e) {
        e.stopPropagation();
        $(this).trigger('dropOption', 'show'); // show the parent element
        return false;
    },function(e) {
        e.stopPropagation();
        $(this).trigger('dropOption', 'hide'); // hide the parent on mouse out
        return false;
    });

如何停止选择下拉菜单的冒泡? (顺便说一下,这在 chrome 上工作正常,但在任何其他浏览器上都没有。)

html代码:

<ul><li id="repeat" class="dropOption active"><a href="#" class="dropLink active tips" data-tips-position="right center"><span class="icon repeat">Repeat Off</span></a>
                        <ul class="repeatOptions active">
                            <li><label>Repeat Each</label> <select class="repeatEach" name="repeatEach"><option value="ayah">Ayah</option><option value="page">Page</option><option value="surah">Surah</option><option value="Juz">Juz</option></select></li>
                            <li><label>Repeat Times</label> <select class="repeatTimes" name="repeatTimes"><option value="1">x1</option><option value="2">x2</option><option value="3">x3</option><option value="4">x4</option><option value="5">x5</option><option value="6">x6</option><option value="7">x7</option><option value="8">x8</option><option value="9">x9</option><option value="0">&infin;</option></select></li>
                            <li><label>Delay</label> <select class="repeatDelay" name="repeatDelay"><option value="0">0 sec</option><option value="1">1 sec</option><option value="2">2 sec</option><option value="3">3 sec</option><option value="4">4 sec</option><option value="5">5 sec</option><option value="5">5 sec</option><option value="6">6 sec</option><option value="7">7 sec</option><option value="8">8 sec</option><option value="9">9 sec</option><option value="ayah">Ayah Duration</option></select></li>
                        </ul>
                    </li>
                </ul>

最佳答案

e.relatedTarget = null 如果鼠标悬停在选择框上

    $('.dropOption').hover(function(e) {
            $(this).trigger('dropOption', 'show');
        },function(e) {
            if (e.relatedTarget != null) // drop down select box fix
                $(this).trigger('dropOption', 'hide');
        });

关于javascript - jquery hover 隐藏在子元素上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623738/

相关文章:

html - 我的图像没有在我的响应式网页上调整大小

javascript - 使用表单中的 session 值进行输入

html - 使用过渡不会出现第二级下拉菜单

javascript - JQuery点击事件和toggleClass方法

javascript - 如何在运行时添加 SVG 元素 - Angular

javascript - 如果我使用 Delete,如何在 Javascript 中计算数组中的所有值

javascript - Mongodb findOneAndUpdate 函数正在插入新文档

php - 将数据从服务器动态加载到数据表中的 "select"类型输入字段

javascript - 通过下拉菜单(选择选项)动态创建输入字段

javascript - 当 ASPxComboBox 组件在两个 ASPxPageControl 标签页中时,我无法访问它