【问题标题】:jQuery IE issues [duplicate]jQuery IE问题[重复]
【发布时间】:2011-08-29 13:57:12
【问题描述】:

可能重复:
jQuery Browser Compatability (IE)

我最初会发布一些代码 sn-ps(如果您提出要求,也会发布),但我认为如果您点击此链接并直接检查我的问题,我认为这个问题会更容易识别。而且,sn-ps 代码可能会变得相当冗长。

链接:http://www.thesportinghub.com/lms/make-my-picks

如果您在 Google Chrome、IE9、Firefox 5.0+ 或 Safari 中打开此页面,并且单击一下,您会注意到此页面的预期功能。正如我在这些浏览器中所制定的那样,它正在正常和完美地工作。

我面临的问题是 jQuery 兼容性。当您选择一个单选按钮时(在上述浏览器之一中),它将划掉相应的团队并在接下来的几周内禁用该团队的剩余单选按钮。您应该会在“工作”浏览器中的两个位置看到它被划掉。

但是,跳到 IE7 和 IE8,你会发现情况并非如此。我在我的代码中上下查找基本语法错误,并无休止地在网上搜索以解决这个问题。非常感谢任何人对此的帮助。

我愿意提供更多信息,编写 sn-ps 代码,并积极参与尝试解决我遇到的这个问题。

使用代码更新:

<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...

【问题讨论】:

  • 哇...我的意思是,我只是想获得一些帮助...我不明白为什么人们对这个重复的帖子如此强烈...他们对我关闭了它。 ...我觉得这可能是人们未来面临的一个问题。说它“过于本地化”并不是对这个问题的公平评估。
  • 我在 IE 7 中尝试过,但它划掉了选定的团队。我看不出什么不起作用。
  • 它应该在两个地方划掉...我知道它在右侧划掉了,但它也应该在整个几周内划掉。
  • 另一个问题被关闭的原因是因为它只在您的网站上。我们将不得不深入您的网站,看看出了什么问题。如果您可以将问题缩小到一些未按预期运行的函数,那就另当别论了,因为那就是这几个函数。
  • 公道,我会修改我的帖子并提供具体的代码sn-ps,但恐怕很难理解,但是好吧......

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


【解决方案1】:

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

【讨论】:

  • 感谢主,丹尼斯。在与整个社区战斗之后,你给了我一线希望。谢谢你。我会试试这个解决方案。
  • 好吧,丹尼斯,我把它改成了 .change 事件,而不是 .click 事件...仍然没有 bueno...您是否认为这将是我让它交叉兼容的方式?
  • 好的,我仔细研究了一下,问题似乎出在输入标签上。试试&lt;input type="radio" class="radio" name="Week1" value="New Orleans Saints" /&gt;,它是一个自闭合标签。 IE 似乎认为$("input").next()&lt;/input&gt; 标签。不知道为什么。
  • 你做到了,丹尼斯,你做到了!
猜你喜欢
  • 1970-01-01
  • 2011-02-01
  • 2011-06-25
  • 2011-09-02
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多