javascript – jQuery事件处理程序不在IE中触发

前端之家收集整理的这篇文章主要介绍了javascript – jQuery事件处理程序不在IE中触发前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个页面上的项目列表,其中包含一组MoveUp,MoveDown和Delete控件.

默认情况下,控件位于隐藏列表的顶部.当您将鼠标悬停在项目行上时,我会使用jquery选择控件

//doc ready function:
..
var tools = $('#tools');
$('#moveup').click(MoveUp);
$('#movedn').click(MoveDn);
$('#delete').click(Delete);
..
$('li.item').mouSEOver(function(){
    $(this).prepend(tools);
});

这在Firefox中运行良好..工具进入当前行,click事件调用ajax函数.但是,在IE6和IE7中没有发生任何点击.我尝试在mouSEOut上取消绑定并重新绑定每个鼠标悬停..但无济于事.

我还研究了javascript以外的各种原因(例如透明的png冲突,z-index,position:absolute)..也没有找到解决方案.

我最终需要为每个项添加一个工具行,并在鼠标上/下显示/隐藏.同样适用 – 唯一的挫折是我的页面上有更多’工具’标记.

有没有人知道为什么IE移动对象后忽略/丢弃/杀死鼠标事件(使用前置)?为什么事后重新绑定事件也没有效果?在我放弃之前,让我生气了将近2个小时.

解决方法

IE将丢失事件,具体取决于您如何向DOM添加内容.
var ele = $("#itemtocopy");

$("#someotheritem").append( ele ); // Will not work and will lose events

$("#someotheritem").append( ele.clone(true) );

我还建议在点击事件上使用.live()来简化你的代码.现在还不支持鼠标悬停/退出. http://docs.jquery.com/Events/live

猜你在找的jQuery相关文章