2012-04-19 76 views
3

刚刚编辑: 我有一个奇怪的问题与jQuery函数。我的功能适用于每个浏览器上的小jsFiddle example:http://jsfiddle.net/Ksb2W/72/
但如果我想将该功能集成到我的html页面中,它不适用于Google Chrome和IE8。在Firefox上效果很好。将jQuery功能集成到html页面

+0

请在这里添加您的功能码妥善解决 – 2012-04-19 09:19:45

+1

更正:请发表一个简短的自我包含例如您的问题在这里,为妥善解决。 – spender 2012-04-19 09:20:58

+0

@burebistaruler:如果这些链接变得陈旧,这个问题也会......考虑在你的问题的主体中提供与问题相关的所有内容。 – spender 2012-04-19 09:24:26

回答

3

从我所看到的情况来看,您的点击并未突出显示正确的行,因为您的实际网站上的表格在您的示例中有不同的布局。

在此示例中,您的行映射为1:1。

在现场直播你的第二个表有两个额外的行:

<tr class="navigation"> ... 
<tr class="headers"> ... 

这显然打破了您的订单为基础的匹配。

由于您的示例与您的现场网站不同,因此您的悬停已中断。

在你的榜样,你有:

$(".table").each(function(){   
    $("tr:eq("+row+")",this).addClass("hoverx"); 
}); 

,但是,从现场直播中​​您有:

$("table.grid tbody tr").each(function(){   
     $("tr:eq("+row+")",this).addClass("hoverx"); 
}); 

注意你是如何遍历排在第二种情况下。

编辑

我想用tbody到组交互行是一个很好的解决你的第二个表具有其他行的问题。你也可以简化您的JavaScript有点结果:

Example with second table having more rows

每请求下面是使用not的解决方案将是什么样子。注意你几乎必须在你选择tr的地方过滤它。

Example using not and making the minimum amount of changes to the original code

+0

hmmmmm是的,你有权利。可以忽略那个tr(导航,头文件)?或者,也许使用这个功能,我已经 – BurebistaRuler 2012-04-19 12:03:27

+0

@burebistaruler你可以在你的选择器中排除它们:'$('tr')。not('。navigation,.headers')。eq(row)'。或者你可以像你说的那样格式化你的HTML,并把所有可选择的行放入他们自己的'tbody'中。 – Henry 2012-04-19 12:06:42

+0

@burebistaruler我在编辑中提供了一个使用'not'的例子。不幸的是,我现在没有时间清理这个例子,但希望其背后的想法很明确。 – Henry 2012-04-19 12:43:46