当一个人聚焦时淡化其他元素

时间:2013-08-08 10:34:07

标签: jquery focus

我有一个项目列表,当其中一个项目具有键盘焦点时我想淡出。键盘焦点的那个不应该褪色。

我在悬停时做了类似的事情,并且这样做了:

// Recede other locations when one is hovered.

$('li').hover( 
  function () {
    $('li:not(:hover)').addClass('recede');
  },
  function () {
    $('li').removeClass('recede');
  }
);

然而,我最好尝试与.focus()类似的东西不起作用......

// Recede other locations when one is focussed.
$('li').focus( function () {
  if (!$('li').is(":focus")) {
    $location_item_no_touch.addClass('recede');  
  }
});

$('li').blur( function () {
  $('li').removeClass('recede');
});

我尝试了一些不同的方法,但似乎很难让:focus的项目不添加.recede类。我出错的任何想法?

2 个答案:

答案 0 :(得分:1)

试试这个:

// Recede other locations when one is focussed.
$('li').focus( function () {
    $('li').removeClass('recede');
    $(this).addClass('recede');  
});

$('li').blur( function () {
  $('li').removeClass('recede');
});

我想你的.recede正在应用你需要的褪色。

答案 1 :(得分:0)

尝试这个

.bind('keydown', function() { isClick = false; })

LIVE DEMO