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

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

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

  1. //doc ready function:
  2. ..
  3. var tools = $('#tools');
  4. $('#moveup').click(MoveUp);
  5. $('#movedn').click(MoveDn);
  6. $('#delete').click(Delete);
  7. ..
  8. $('li.item').mouSEOver(function(){
  9. $(this).prepend(tools);
  10. });

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

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

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

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

解决方法

IE将丢失事件,具体取决于您如何向DOM添加内容.
  1. var ele = $("#itemtocopy");
  2.  
  3. $("#someotheritem").append( ele ); // Will not work and will lose events
  4.  
  5. $("#someotheritem").append( ele.clone(true) );

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

猜你在找的jQuery相关文章