当我将一个皮肤应用到我的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');
})
});
答案 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"));
});
});