2

我有两个可排序列表,一个是嵌套的,在嵌套的可排序列表的 li 元素上具有鼠标输入效果。我的问题是当用户在作为输入字段的子元素的列表中快速移动鼠标时,mouseenter 和 mouseleave 函数被不一致地调用。

这是正在发生的事情的示例,您必须将一个窗格拖到列表中,然后将 3-4 个文本框项目拖到窗格中才能看到问题。您可以看到右上角的 2 个数字正在跟踪鼠标的进出。注意到目前为止,我只在 Firefox 3.5.7 中测试了我的网站。该问题似乎已在 Firefox 3.6 版中得到解决,但我需要它才能在所有以前版本的 Firefox 3.x 上工作

例子

我的 jquery 1.4.1 代码:

以下是 mouseenter 和 mouseleave 函数:

$(".pane > li").live("mouseover", function(){
$("#in").html(in1);
$(this).children(".test").stop().animate({opacity: 1},400);
in1++;
});

$(".pane > li").live("mouseout", function(){
$("#out").html(out1);
$(this).children(".test").stop().animate({opacity: 0},400);
out1++;
});

当我调用将 li 元素动态添加到页面中的函数时,我试图在不使用 live() 的情况下分配 mouseenter 和 mouseleave 函数。但是,问题仍然存在,您可以在 firebug 调试器中看到错误。也许它与Firefox中的relatedTarget有关。感谢您提供任何帮助。

4

2 回答 2

0

哇,看起来很酷。无论如何,也许你可以做到这一点,当“mouseenter”在一个东西上触发时,它会在所有其他东西上运行与“mouseout”相对应的代码。由于它们不能重叠,这似乎可行。

于 2010-02-10T04:36:30.660 回答
0

我通过在输入字段上绝对定位透明 div 并在单击它们时减小 div 的 z-index 找到了一个不优雅的解决方案。同时,我专注于输入字段,因此 div 对用户几乎是不可见的。如果有人有任何建议,我仍然更喜欢更优雅的修复。

于 2010-02-10T21:15:46.937 回答