Php jQuery浏览器兼容性(IE)
由于我试图向您展示的源代码相当长且复杂,我只想提供一个指向我遇到问题的页面的链接 如果您在Google Chrome或最新版本的Firefox(5或6)中使用此脚本,您将注意到此脚本中的jQuery是如何工作的。它的工作方式正是我希望它在那些浏览器中工作的方式 然而,我目前很难弄清楚为什么它在IE6、IE7和IE8中不能正常工作。。。我愿意对IE6说“随便什么”,但我真的希望在IE7和IE8中实现这一点。通过查看我的源代码,您是否可以看到导致IE7和IE8出现问题的任何东西 主要问题(在Chrome中使用jQuery,然后在IE中使用jQuery后,您会注意到)是,当单击一个团队时,它将禁用输入字段,并在接下来的几周内对该团队进行攻击。但是,IE中的输入已正确禁用,但strike(jQuery中的addClass)不起作用 我愿意提供更多的信息。。。。我还不想让信息过载。但这一直是我几个小时以来一直在努力解决的问题 提前感谢您的帮助。我会接受最好的答案并投票支持!谢谢 下面是代码更新 以下是我当前的javascript/jquery代码:Php jQuery浏览器兼容性(IE),php,jquery,xml,internet-explorer,compatibility,Php,Jquery,Xml,Internet Explorer,Compatibility,由于我试图向您展示的源代码相当长且复杂,我只想提供一个指向我遇到问题的页面的链接 如果您在Google Chrome或最新版本的Firefox(5或6)中使用此脚本,您将注意到此脚本中的jQuery是如何工作的。它的工作方式正是我希望它在那些浏览器中工作的方式 然而,我目前很难弄清楚为什么它在IE6、IE7和IE8中不能正常工作。。。我愿意对IE6说“随便什么”,但我真的希望在IE7和IE8中实现这一点。通过查看我的源代码,您是否可以看到导致IE7和IE8出现问题的任何东西 主要问题(在Chr
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('.radio:checked').addClass("selected");
$('.pickbox').text($('.radio:checked').val());
var selected_week = $('#weekselect').val();
$('table.weekbox').hide();
$('table#weekbox' + selected_week).show();
$('span.selection.text').html('<br/>My Week ' + selected_week + ' Selection:');
$('input.radio').change(function () {
$('.teambox').find('span.strike').removeClass('strike');
var selected = $(this).val();
var us_selected = selected.replace(/ /g, "");
$('.radio:not(:checked)').removeClass('selected');
$('.radio:not(:checked)').next('span').css('color', '');
$('.radio:not(:checked)').removeAttr('disabled');
$('.radio:checked').addClass('selected');
$('.pickbox').text($(this).val());
$('.pickbox').css('border', '3px dashed #88cc33');
//$('.pickbox').text($('.teambox').find('span.' + us_selected).text());
$('.teambox').find('span.' + us_selected).addClass('strike');
$('.selected').each(function () {
var selected_team = $(this).val();
var x_selected_team = selected_team.replace(/ /g, "");
$('.teambox').find('span.' + x_selected_team).text(selected_team).addClass('strike');
$('table.weekbox').find('td input[value="' + selected_team + '"]').attr('disabled', 'disabled');
$('.selected').next('span').css('color', '#88cc33');
});
});
$('#weekselect').change(function () {
var selected_week = $('#weekselect').val();
if ($('input[name="Week' + selected_week + '"]').is(':not(:checked)')) {
$('table.weekbox').hide();
$('table#weekbox' + selected_week).show();
$('span.selection.text').html('<br/>My Week ' + selected_week + ' Selection:');
$('.pickbox').css('border', '1px dashed #FFFFFF');
$('.pickbox').text('');
}
$('table.weekbox').hide();
$('table#weekbox' + selected_week).show();
$('span.selection.text').html('<br/>My Week ' + selected_week + ' Selection:');
$('input:not(:checked)').next('span').removeClass('strike');
$('input[disabled]:not(:checked)').next('span').addClass('strike');
$('.pickbox').text($('input.radio[name="Week' + selected_week + '"].selected').val());
if ($('.pickbox').text() != "") {
$('.pickbox').css('border', '3px dashed #88cc33');
}
$('.selected').each(function () {
var selected_team = $(this).val();
var x_selected_team = selected_team.replace(/ /g, "");
$('.teambox').find('span.' + x_selected_team).text(selected_team).addClass('strike');
});
});
});
</script>
我想上面的代码就是我的问题所在。。。让我的属性在IE中无法正确读取有什么奇怪的地方吗?您需要正确关闭输入标记
<input type="radio" class="radio" name="Week1" value="New York Jets"></input> //Incorrect
<input type="radio" class="radio" name="Week1" value="New York Jets" /> //Correct
//不正确
//正确的
Chrome似乎足够聪明,可以修复它,并将
作为前一个输入元素的一部分,但如果你在IE中尝试这一点,你会发现它认为
是下一个标签<代码>$(“foo”)。下一个(“span”)将仅选择下一个元素(如果它是span)
哇。。。如果是这样的话。。。你是我的英雄丹尼斯,丹尼斯,成功了!非常感谢你。哎呀。谢谢,谢谢,谢谢。
$('input[disabled]:not(:checked)').next('span').addClass('strike');
<input type="radio" class="radio" name="Week1" value="New York Jets"></input> //Incorrect
<input type="radio" class="radio" name="Week1" value="New York Jets" /> //Correct