选择时悬停事件的jQuery /浏览器问题

时间:2012-09-18 09:31:31

标签: jquery html cross-browser position jquery-hover

首先,我找到了我的问题,发现只是没有密切相关的主题,我相信这可能与我在谷歌上找到的不同,感谢您抽出时间来研究我的问题。

http://jsfiddle.net/dSJMG/

在这里你可以看到一个演示,我使用jQuery 1.8并且有一个包含标签和选择元素的div,这些已经被切换到悬停事件以提供编辑功能,并发现当悬停字段并选择任何选项时选择下拉列表,有时会触发mouseleave事件但是我没有用鼠标指针留下选项列表。 这似乎是以非确定性的方式发生的,更常见的是当选项上的指针移动速度更快(但仍未离开其区域)。 此外,我可以在每个主要的浏览器上重现它,但我知道只有IE正式有这个错误。

这可能与定位有关,因为当我增加容器与其子容器之间的空间时,问题似乎已得到解决。

任何想法都表示赞赏。

由于

1 个答案:

答案 0 :(得分:0)

var $select = $("select.sel"), $label = $("label.lab");

$(".cont").hover(function(evt) {
    if (evt.type === "mouseenter") {
        $select.val($label.hide().text()).show();
        $select.addClass('active');
    } else {
        if(!$select.hasClass('active')) {
            $label.text($select.hide().val()).show();
            $select.removeClass('active');
        }
    }
});

$("select.sel").change(function() {
    if($select.hasClass('active')) {
        $label.text($select.hide().val()).show();
        $select.removeClass('active');             
    }
});

更改jQuery like this