用jQuery皮肤找不到gridview行

时间:2011-04-03 14:29:37

标签: jquery asp.net gridview

当我将一个皮肤应用到我的gridview时,我的jQuery脚本不起作用。一旦我加入皮肤,我再也找不到tr了。我认为它与tr构造的方式有关。没有皮肤,行是干净的

    <tr>data</tr>. 

但是皮肤现在是行

<tr style=....>data</tr>

这是我的jQuery,当我没有将皮肤应用于gv时可以正常工作。

 $(document).ready(function () {
        $('tr').mouseover(function () {
            $(this).toggleClass('highlightrow');
                }).mouseout(function() {
                    $(this).removeClass('highlightrow');
                })
    });

2 个答案:

答案 0 :(得分:1)

我敢打赌,style的优先级高于您的css。您的highlightrow如何定义?例如,如果您在此处指定background-color并且它也位于tr的{​​{1}}中,则会被忽略。

也许添加style子句可能有所帮助:

!important

答案 1 :(得分:1)

发现行很好,问题是他们的style中有“硬编码”背景颜色,因此class中的背景颜色无效。

解决此问题的一种方法是存储以前的颜色,然后直接在mouseover中设置背景颜色,并在鼠标移出事件中恢复以前的颜色(以保留皮肤)。

代码如下:

$(document).ready(function () {
    $('tr').mouseover(function () {
        $(this).data("prev_color", $(this).css("background-color"));
        $(this).toggleClass('highlightrow').css("background-color", "yellow");
    }).mouseout(function() {
        $(this).removeClass('highlightrow').css("background-color", $(this).data("prev_color"));
    });
});

实时测试案例:http://jsfiddle.net/yahavbr/awEaP/1/