0

我有这个法典,它适用于 jquery e rapahel_jquery。这是一个带有一些鼠标事件的函数。IE 和 Opera 的鼠标悬停问题。这是从法典中推断出来的:

 for (var province in ita)
 {
        (function (prov, province)
        {
            prov.color = Raphael.getColor();                 
        prov.scale(2.5, 2.5);
        }); //close mouseover

        prov.mouseout(function() 
        {
        alert('ciao');
            prov.scale(1, 1);      
         }); //close mouseout

            prov.mousedown(function()
        {
        dialog($alfa); // calling the function dialog
         }); //close mousedown

        }); //close function (prov, province)
   }

所有作品,但不是prov.mouseoutIE e Opera!为什么??你能帮助我吗??

谢谢!

4

1 回答 1

0

你正在使用 jQuery 吗?尝试 mouseleave 而不是 mouseout。

mouseleave 是一个仅限 IE 的 javascript 事件。现在,jQuery 对 mouseleave 的解释与他们的 mouseout 版本略有不同。

当鼠标离开它所绑定的元素时会触发 jQuery mouseleave。

当鼠标离开它所绑定的元素时,或者当鼠标离开该元素的任何后代元素时,都会触发 jQuery mouseout。

我不明白为什么你会想要检测后代元素的 mouseout,所以这就是为什么我对所有事情都使用 jQuery mouseleave 并且从不打扰 mouseout 的原因。

另外,也许这个 jquery e rapahel_jquery 库使用的是旧版本的 jQuery,如果你能够使用新版本,也许这个 Opera/IE 错误会被纠正?我仍然会尝试 mouseleave,因为(据我所知,无需查看 jQuery 源代码)它使用完全不同的功能来完成类似类型的操作,并且旨在复制仅限 IE 的事件。

于 2011-09-19T17:38:47.787 回答