【问题标题】:jquery script not working under chrome, safari and partially opera, FF is okjquery 脚本在 chrome、safari 和部分歌剧下不起作用,FF 可以
【发布时间】:2012-01-14 07:51:30
【问题描述】:

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

成功完成——再次感谢 RKW。

我已将代码与我之前的代码合并,一切似乎都运行良好——在 FF 下。但现在,我已经在 Chrome、Safari (mac) 和 Opera 下尝试过了。 在 Chrome 和 Safari 中,脚本根本没有做任何事情(并且错误控制台保持清晰)。在 Opera 下,只有第一部分在工作——添加了 active 类。

有什么建议吗?

$(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');
    });
});

【问题讨论】:

  • 你应该发布你的 html 或者一个更好的 jsfiddle。真的很难根据你的 javascript 猜测你的 html 结构是什么。
  • 我之前的帖子有一个链接,html在哪里。我尽量不要发布太多重复的内容...
  • 如果您发布与问题相关的内容,您将获得更好/更快的答案。人们不喜欢为了理解您当前的问题而点击并阅读其他答案。
  • 鉴于您提供的 HTML 布局,由于唯一的输入是单选按钮,您可以将所有代码放在 input:radio 或 input
  • mrtsherman:谢谢你的建议。我是这个网站的新手——我有很多东西要学。

标签: javascript jquery


【解决方案1】:

我不太确定您要对突出显示类做什么(如它应该突出显示的方式/内容),但是,您需要进行一些更改才能将这些类正确应用于 div。

你会想要使用:而不是使用 .focus():

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

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

关于 input:radio 的一个注意事项是它必须使用 jQuery 的引擎来查找单选按钮,因为它不是标准的 CSS2/3 选择器。如果执行速度很重要,请使用 Thiago Santos' type='radio' (因为 CSS 可以理解这一点,您的浏览器也可以)。

我改变的另一件事是:

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

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

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

JSFiddle Example

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

【讨论】:

  • 感谢您的广泛回答。它现在在 Chrome 和 safari 中运行。但是歌剧的表现还是一样的。第一部分已执行,第二部分未执行 - 但它可能与某些 drupal 和 jquery 不喜欢有关。标记为已回答。
【解决方案2】:

在第二部分,尝试改变:

$("input:radio")...

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

【讨论】:

  • 太糟糕了..我所做的只是一个猜测..但我认为你应该添加一个示例 jsfiddle 以便人们可以更好地理解问题是什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多