2012-03-10 63 views
0

我有以下的jQuery代码:如何在使用jQuery的.keydown()之后对元素进行永久更改?

function showResult(str) 
{ 
if (str.length == 0) 
{ 
    $('#mySearch').html(''); 
    return; 
} 
else 
{ 
    $('#mySearch').load('search/'+str,function(){ 
     $('#mySearch').css({ 
      'background-color': 'white', 
      'width': '250px', 
      'position': 'absolute', 
      'right': '0' 
     }) 
    }); 
} 

$(document).click(function(event) { 
if (!$(event.target).hasClass('mySearch')) 
{ 
    $('#mySearch').html(''); 
    $('#main_search').val(''); 
} 
}); 

$(document).keydown(function(e){ 
    if (e.keyCode == 40) { 
     $('#mySearch tr.myRow:first').addClass("a_classy_class"); 
     return false; 
    } 
}); 
} 

当我按下箭头键类的a_classy_class'被添加到id为“myRow”的标签。但是,一旦我停止按下向下箭头键,类将被删除。如何使更改永久化,以便在停止按下向下箭头键后更改会保留?

+1

*“当我按下下箭头键时,类'a_classy_class'被添加到ID为'myRow'的标签中,但是,一旦我停止按下向下箭头键,类就会被移除。”*没有任何意义。一旦添加了一个类,它将不会被删除,除非您删除它(或者完全用另一个基本相同但没有该类的元素替换)。 – 2012-03-10 17:46:58

+0

添加到T.J.说,该类不会被删除,除非其他代码删除它。所以,在别的地方你必须有代码(你没有在这里透露过)导致这个问题。除非您找到/披露其他代码,否则我们无能为力。 – jfriend00 2012-03-10 17:53:02

+0

我刚添加完整的代码。 – 2012-03-10 18:01:18

回答

0

除了其他建议,如果页面重新加载,您的更改将不会持续。

0

代码中的其他内容是删除该类,或将该行替换为没有该类的行。如果没有,那就没有什么能够魔法地将这个班级从行中移除。 Proof

您的#anID tr#myRow:first选择器暗示您可能对您的HTML有问题。 ID选择器始终选择唯一元素,因为id必须在页面上是唯一的。因此,#myRow:first:first部分不需要。所以也许这与它有关,但我在这一点上猜测。

+0

谢谢。我将#myRow更改为一个类。它仍然无法正常工作。一旦我停止按下向下箭头键,类将被删除。 – 2012-03-10 18:05:27