我有一个jQuery脚本在Chrome 11和Firefox 4中完美运行,但在IE8中似乎已经破解了。它似乎与jQuery parents()函数与选择器的使用有关。在IE8中运行时,它不会返回任何元素。
我已经创建了一个问题的简化版本,它显示了相同的症状over at jsFiddle,以防止这里有大量代码。
有人能告诉我这里会发生什么吗?
更新:使用closest()似乎会导致类似行为,但在这种情况下似乎更合适。
答案 0 :(得分:2)
顶级元素必须是部分吗?看起来你正在遇到IE8中缺乏对HTML5的支持限制你的一个领域。如果将节更改为div,则代码将按原样运行。
答案 1 :(得分:1)
查看jsFiddle中的选择器,如果我摆脱了选择器的第二部分,我能够在IE8中正常工作。
$(document).ready( function(){
$('a[data-detailed]').live('click', function(event){
var a = $(this);
var key= a.attr('data-detailed');
$(".detailedOverview[data-detailed="+key+"]").slideToggle('fast');
$(".masterOverview").slideToggle('fast');
event.preventDefault();
});
$('a[href=#back]').live('click', function(event){
var a = $(this);
var detailedOverview= a.parents("[data-detailed]");
$(".masterOverview").slideToggle('fast');
detailedOverview.slideToggle('fast');
event.preventDefault();
});
});
在每个选择器中,选择器后面都有一个“,fileparent”。没有必要像这样指定父级,并且摆脱它的工作原理。事实上,你可以一起摆脱fileparent。