jQuery:IE特定问题

时间:2010-12-12 14:58:49

标签: jquery

我正在尝试使用以下内容,但它不起作用。我做错了,这是肯定的。

 $.keyNav();
  $.whenPressed('t',function(){
   $("#grid-wrapper article.post").fadeTo(200, 1);
        });
  $.whenPressed('p',function(){
   $("#grid-wrapper article.post").not(".category-photographie").fadeTo(200, 0.1);
   $("#grid-wrapper article.post").filter(".category-photographie").fadeTo(200, 1);
        });
        $.whenPressed('d',function(){
   $("#grid-wrapper article.post").not(".category-design").fadeTo(200, 0.1);
   $("#grid-wrapper article.post").filter(".category-design").fadeTo(200, 1);
        });
        $.whenPressed('v',function(){
   $("#grid-wrapper article.post").not(".category-video").fadeTo(200, 0.1);
   $("#grid-wrapper article.post").filter(".category-video").fadeTo(200, 1);
        });
        $.whenPressed('w',function(){
   $("#grid-wrapper article.post").not(".tweet").fadeTo(200, 0.1);
   $("#grid-wrapper article.post").filter(".tweet").fadeTo(200, 1);
        });
});

如果我删除了最后一个});它可以工作,但不能在IE中删除,那么我的语法可能错了吗?

我使用的是keynav插件:

https://github.com/BrianTheCoder/jquery-keyboard-navigation/blob/master/README

1 个答案:

答案 0 :(得分:2)

我不确定你的IE是什么问题,看起来好像你发布的代码不会导致任何问题...很可能之前此代码有错误,比如尾随逗号IE不会容忍的东西)。检查开发人员控制台中IE中的错误(在IE8 +中)和早期版本中的状态栏,看看发生了什么。

我确实有一个建议,使用对象贴图在这里减少你的代码,因为你重复了很多...这样做你可以更多可能的语法错误,像这样:

var map = { t:"*", 
            p:".category-photographie", 
            d:".category-design", 
            v:".category-video", 
            w:".tweet" };
$.keyNav();
$.each(map, function(key, selector) {
  $.whenPressed(key,function(){
    $("#grid-wrapper article.post").not(selector).fadeTo(200, 0.1)
                             .end().filter(selector).fadeTo(200, 1);
  });
});