Javascript MediaWiki/jQuery在IE8中交替使用表格行颜色 MediaWiki 1.21 jQuery 1.8.3(MediaWiki附带)
我试图避免使用jQuery Tablesorter,因为['zebra']小部件不起作用。该解决方案应该在IE8浏览器以及更新的浏览器中工作 CSS:Mediawiki:Common.CSSJavascript MediaWiki/jQuery在IE8中交替使用表格行颜色 MediaWiki 1.21 jQuery 1.8.3(MediaWiki附带),javascript,jquery,css,mediawiki,tablesorter,Javascript,Jquery,Css,Mediawiki,Tablesorter,我试图避免使用jQuery Tablesorter,因为['zebra']小部件不起作用。该解决方案应该在IE8浏览器以及更新的浏览器中工作 CSS:Mediawiki:Common.CSS /*--- Color scheme looks like an excel table :D --- */ .mytable { border-collapse: collapse; border: 1px solid #AAAAAA; } .mytable tbody tr td
/*---
Color scheme looks like an excel table :D
--- */
.mytable {
border-collapse: collapse;
border: 1px solid #AAAAAA;
}
.mytable tbody tr td {
border: 1px solid #AAAAAA;
}
.mytable tbody tr th {
border: 1px solid #AAAAAA;
}
.even {
background-color: #DCE6F1;
}
.odd {
background-color: #FFFFFF;
}
.head {
background-color: #4F81BD;
color: #FFFFFF;
}
JavaScript:Mediawiki:Common.js
$(document).ready(function() {
$(".mytable tr:nth-child(even)").addClass('even');
$(".mytable tr:nth-child(odd)").addClass('odd');
$(".mytable tr").live('click', function() {
If ($(this).hasClass('even')) {
$(this).removeClass('even');
}
else if ($(this).hasClass('odd')) {
$(this).removeClass('odd');
}
else {
$(".tablesorter").trigger('update');
}
});
});
/*--------------------------------------------------|
| Alternate row styling for myTable class (IE) |
|--------------------------------------------------*/
$( document ).ready( function() {
function fixStripes() {
/* setTimeout() adds a 1ms delay so Mediawiki's tablesorter
caching doesn't overwrite the class changes applied manually */
setTimeout( $.proxy( function() {
$( '.mytable' ).find( 'tr' ).removeClass( 'even odd head' )
.filter( ':even' ).addClass( 'even' ).end()
.filter( ':odd' ).addClass( 'odd' ).end()
.filter( ':has(th)' ).addClass( 'head' );
}, this), 1);
}
/* On load */
fixStripes();
/* When the table header is clicked, reapply striping */
$( '.mytable th' ).click( function() {
fixStripes();
} );
} );
错误总是一样的
“JavaScript分析错误:分析错误:缺失;第12行文件'Mediawiki:Common.js'中的before语句”
当我看到IE8使用其内置开发工具时,我真正看到的是jscript没有添加类。我在这个网站上尝试了另一个问题[1]中的几个解决方案,但没有一个能在IE8中使用。奇怪的是它在6月27日就开始工作了。。。我甚至对下面的问题发表了评论,感谢其中一位撰稿人
我怎样才能使这个css注入在IE8上工作
更新:
我修改了脚本,专门解决了chrome中的问题。我删除了一些css,这些css可能在更现代的浏览器中为脚本工作,现在我甚至无法在Chrome中使用以下内容
$(document).ready(function() {
$(".mytable tr:nth-child(even)").addClass("even");
$(".mytable tr:nth-child(odd)").addClass("odd");
$(".mytable tr:first-child th").addClass("head");
});
下面是我在mediawiki中使用的一个表的示例,我在其中添加了mytable类。目标是在浏览器加载时设置表的样式,最好仅在jquery中,以便IE保持兼容,并在对表进行排序时重新分析样式(因此上面的单击功能)
我认为问题在于你的“elseif”。对于Javascript,您需要使用“elseif”。
另外,您需要关闭最后一个括号“else{”。我能想到的唯一一件事是jQuery不喜欢带有大写字母的
If
。请尝试使用小写字母If
,如下所示:
$(document).ready(function() {
$(".mytable tr:nth-child(even)").addClass('even');
$(".mytable tr:nth-child(odd)").addClass('odd');
$(".mytable tr").live('click', function() {
if ($(this).hasClass('even')) {
$(this).removeClass('even');
}
else if ($(this).hasClass('odd')) {
$(this).removeClass('odd');
}
else {
$(".tablesorter").trigger('update');
}
});
});
你在使用哪个版本的jQuery?根据它的v1.8.3,我能想到的唯一一件事是jQuery不喜欢带大写字母的
If
。试试小写的If
。哇,是这样,这有多疯狂?我一定是在某个时候做了,因为一些语法上的无稽之谈。把它贴出来作为答案,我会接受的。。.孩子,我觉得自己很笨,但谢谢你!通常我们似乎找不到的错误都是隐藏在小事情中的错误。就像这一个。:)不客气。你真的结束了最后一个else声明了吗?又是一个好消息,但仍然没有运气。我添加了一些细节,去掉了一些东西,试图找出到底是什么不起作用。我甚至无法让addClass函数在IE或Chrome中工作。我已经在问题的底部添加了我的最终解决方案。我完全抛弃了if,else if,else结构。
$(document).ready(function() {
$(".mytable tr:nth-child(even)").addClass('even');
$(".mytable tr:nth-child(odd)").addClass('odd');
$(".mytable tr").live('click', function() {
if ($(this).hasClass('even')) {
$(this).removeClass('even');
}
else if ($(this).hasClass('odd')) {
$(this).removeClass('odd');
}
else {
$(".tablesorter").trigger('update');
}
});
});