jQuery IE问题

时间:2011-08-29 13:57:12

标签: php jquery internet-explorer cross-browser compatibility

  

可能重复:
  jQuery Browser Compatability (IE)

我最初会发布一些代码片段(并且如果你提出要求的话),但我认为如果你按照这个链接并直接检查我的问题,这个问题会更容易识别。并且,代码片段可能会变得相当冗长。

链接: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 ...

1 个答案:

答案 0 :(得分:2)

您的问题是您在单选按钮上使用change而不是click。在触发更改事件之前,IE需要单选按钮模糊。另外,在元素ID中使用空格时要非常小心。