jquery脚本不工作在chrome, safari和部分opera, FF是可以的

jquery script not working under chrome, safari and partially opera, FF is ok

本文关键字:opera FF 脚本 工作 safari chrome jquery      更新时间:2023-09-26

今天我一直在这里寻求帮助。

已成功完成,再次感谢RKW。

我已经将代码与之前的代码合并,并且在FF下一切似乎都工作得很好。但现在,我在Chrome、Safari (mac)和Opera上都试过了。在Chrome和Safari脚本不做任何事情(和错误控制台保持清晰)。在opera下,只有第一部分是工作的——类活动被添加。

有什么建议吗?

$(document).ready(function(){
    $('input').focus(function() { /* add class active to parent div */
        $('div').removeClass('active');
        $(this).parent().parent().parent().addClass('active');
        $(this).closest("div").addClass('active');
    });
    $('input:radio').focus(function() { /* add class highlight to specified tds in one column */
        var num = 2;
        var col = $(this).closest('td').index() + 1;
        var row = $(this).closest('tr').index();
        var tds = $('td:nth-child(' + col + ')');
        tds = tds.slice(row,row+num);
        $('td').removeClass('highlight');
        tds.addClass('highlight');
    });
});

我不太确定你想用你的高亮类做什么(就像它应该如何高亮一样),但是,你需要做一些改变才能正确地将这些类应用于div。

不要使用.focus(),您可以使用:

$('input').click(function()

$('input:radio').focus(function()

关于输入:单选的一个注意事项是,它将不得不使用jQuery的引擎来查找单选按钮,因为它不是标准的CSS2/3选择器。如果执行速度是至关重要的,使用Thiago Santos的type='radio'(因为CSS理解这个,所以你的浏览器也会理解)。

我改变的另一件事是:

$('div').removeClass('active');

因为它没有在chrome中找到div,但是在页面中做同样的事情时,我混淆了转换,我找到了所有使用。active类的元素,并在使用标签设置$(this)元素之前将它们从所有元素中删除。将其更改为:

$('.active').removeClass('active');

JSFiddle例子

我还注意到你正在使用CSS' nth-child,请注意这不适用于IE8或更低版本(或IE9在quirks模式下)。

第二部分,尝试更改:

$("input:radio")...

$("input[type='radio']")...