我最初会发布一些代码片段(并且如果你提出要求的话),但我认为如果你按照这个链接并直接检查我的问题,这个问题会更容易识别。并且,代码片段可能会变得相当冗长。
链接:http://www.thesportinghub.com/lms/make-my-picks
如果您在Google Chrome,IE9,Firefox 5.0+或Safari中打开此页面,如果您点击一下,您会注意到此页面的预期功能。正如我在这些浏览器中制定的那样,它正常且完美地工作。
我面临的问题是jQuery兼容性。当您选择一个单选按钮(在上述浏览器之一中)时,它将跨越相应的团队并在剩余的几周内禁用该团队的剩余单选按钮。您应该在“工作”浏览器的两个位置看到它。
然而,跳转到IE7和IE8,你会发现情况并非如此。我已经查找了我的代码以查找基本的语法错误,并且无休止地搜索了网络来解决这个问题。我非常感谢任何人对此的帮助。
我愿意提供更多信息,代码片段,并积极参与解决我遇到的这个问题。
使用代码更新:
<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>
有我的jQuery脚本......有人提到我的IE问题是因为我的单选按钮没有从.change函数中读取,而且它需要是.click ...
答案 0 :(得分:2)
您的问题是您在单选按钮上使用change
而不是click
。在触发更改事件之前,IE需要单选按钮模糊。另外,在元素ID中使用空格时要非常小心。