我有一个在 Chrome 11 和 Firefox 4 中运行良好的 jQuery 脚本,但它在 IE8 中似乎被破坏了。它似乎与使用带有选择器的jQuery parents()函数有关。它在 IE8 中运行时不返回任何元素。
我已经创建了我的问题的简化版本,它在 jsFiddle上显示了相同的症状,以防止这里出现大量代码。
谁能告诉我这里可能发生了什么?
更新:使用最接近()似乎会导致类似的行为,但在这种情况下似乎更合适。
我有一个在 Chrome 11 和 Firefox 4 中运行良好的 jQuery 脚本,但它在 IE8 中似乎被破坏了。它似乎与使用带有选择器的jQuery parents()函数有关。它在 IE8 中运行时不返回任何元素。
我已经创建了我的问题的简化版本,它在 jsFiddle上显示了相同的症状,以防止这里出现大量代码。
谁能告诉我这里可能发生了什么?
更新:使用最接近()似乎会导致类似的行为,但在这种情况下似乎更合适。
顶级元素必须是部分吗?您似乎遇到了 IE8 中缺乏对 HTML5 的支持而限制您的领域之一。如果将部分更改为 div,则代码将按原样工作。
查看您的 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。