单击文档上的事件。在IE8上不能正常工作

时间:2011-10-20 17:54:41

标签: javascript jquery internet-explorer javascript-events

我正在为网页做一些调整,我正在使用MVC和jquery。

基本上我的页面上有一些帮助图标,当用户点击图标时,会出现一个带有帮助描述的气泡。

我在这个页面的javascript中有这个代码:

AddHelpIconMouseEvents: function(element, msg, divForm) {
   $(element).live('click', function(event) {
      if (event.type === "click") MyClassHelper.showHelpIconBubble(msg, divForm, event);
   });
   $(document.body).click(function() { $(divForm).hide('fast'); });            
}

正如您所看到的,我正在使用document.body.click事件来捕获帮助气泡之外的任何点击,并隐藏气泡。

现在考虑这种情况,我点击帮助图标并显示气泡,如果我点击页面上的任何其他位置,气泡会按预期消失,但我遇到的问题是,如果不是点击空白区域在页面上我点击链接,该链接显示页面的另一部分,隐藏包含帮助图标的部分,但帮助气泡不会消失,它仍然显示。

在Firefox上不会发生这种情况,我可以点击链接或空白区域,泡泡消失。

我认为这可能与IE处理事件的方式有关,我想我读了一些关于它的事情,所以我想知道是否有人知道如何解决这个问题,我想我可以在链接上放一些代码并验证如果泡泡是可见的,隐藏它,但我不喜欢这个想法,我认为这不是一个好的解决方案,我想知道是否有另一种更好的方法来处理它。

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以创建一个检查帮助包的函数,以检查DOM是否已存在。如果是这样,将其从DOM中删除。您必须在每个其他链接上调用此函数。