javascript - 为什么这个 jQuery 代码片段在 IE8 中不能像在 Firefox 或 Chrome 中那样工作(包括现场演示)?

标签 javascript jquery html css internet-explorer-8

我之前在 Stackoverflow 上寻求帮助,涉及当鼠标悬停在具有相同类的任何 Span 上时突出显示具有相同类的 Span。

效果很好:
How can I add a border to all the elements that share a class when the mouse has hovered over one of them using jQuery?

   $('span[class]').hover(
function() {
    $('.' + $(this).attr('class')).css('background-color','green');
},
function() {
    $('.' + $(this).attr('class')).css('background-color','yellow');
}
)

这是一个使用示例:
http://dl.dropbox.com/u/638285/0utput.html

但是,它在 IE8 中似乎无法正常工作,但在 Chrome/Firefox 中却可以正常工作。

这是 IE8 中的屏幕截图,我的鼠标悬停在中间的 "> min) { min" 部分。

alt text

如您所见,它完美地突出显示了鼠标悬停的范围。然而,它还突出显示了其上方和下方的一些随机跨度,这些跨度不具有相同的类别!只有与鼠标所在位置具有相同类别的跨度才应突出显示为绿色。在此屏幕截图中,只有中间的绿色部分应该是绿色的。

这是它在 Firefox/Chrome 中正常工作的屏幕截图,其中我的鼠标位于完全相同的位置:

alt text

此屏幕截图是正确的,因为鼠标悬停的跨度(绿色部分)是该部分中唯一共享该类的跨度。

为什么 IE8 使用我的小 jQuery 片段时会随机地以绿色突出显示跨度(它们不共享同一类)?

再说一次,如果你想现场观看,我这里有: http://dl.dropbox.com/u/638285/0utput.html

最佳答案

当我在 IE8 中运行脚本调试器时,您的悬停函数会被多次调用,因为事件会沿着嵌套跨度树向上传播。你尝试过 event.stopPropagation() 吗?

编辑:实际上,我认为问题是您需要将 < 和 > 编码为 >和<

例如,此代码片段 public List<FingerPrints> fingerPrints(List<Kgram完全陷入了这个public List fingerPrints(List IE(以及 FireFox)正在解释 <FingerPrints>作为一个标签,IE 试图关闭该标签,这导致跨度变得困惑。

关于javascript - 为什么这个 jQuery 代码片段在 IE8 中不能像在 Firefox 或 Chrome 中那样工作(包括现场演示)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2710536/

相关文章:

相当于 jQuery 的 keyup() 和 keydown() 的 JavaScript

html - 我如何更改 <article> php 元素样式

html - 防止 html 表单字段中的链接

html - 背景未在 IE 中显示,但在 Chrome 中工作正常

javascript - jQuery 适配屏幕插件

javascript - 如何使用 jQuery appendTo 在同一行中追加标签文本?

javascript - wrapInner 不会将子元素添加到 DOM 中的包装元素中

javascript - 从 javascript 数组创建 HTML 表格

javascript - 如何在 Reactjs Material UI 上使用 CSS @media 响应 makeStyles?

javascript - 一个非常小的 jQuery 插件的简单查询