2012-03-10 15 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'のタグに追加されますが、下矢印キーを押してもクラスが削除されます。" *何の意味もない。一度クラスが追加されると、それを削除しない限り(またはクラスを除いて本質的に同じである別のものに要素を完全に置き換えない限り)、クラスは削除されません。 –

+0

T.J.に追加する他のコードがそれを削除しない限り、クラスは削除されません。したがって、この問題の原因となっているコード(ここでは公開していないコード)が必要です。あなたが他のコードを見つけて公開するまで、私たちができることはあまりありません。 – jfriend00

+0

私は完全なコードを追加しました。 –

答えて

0

他の提案に加えて、ページが再読み込みされると、変更内容は保持されません。

0

コード内の何かがクラスを削除しているか、クラスを持たないもので置き換えています。クラスが行から魔法のように削除されることはありません。 Proof

#anID tr#myRow:firstセレクタでは、HTMLに問題がある可能性があります。 idの値がであるため、IDセレクタは常に一意の要素を選択します。はページ上で一意である必要があります。したがって、:firstの部分は#myRow:firstの必要はありません。だからおそらくそれはそれと関係がありますが、私はこの時点で推測しています。

+0

ありがとうございます。 #myRowをクラスに変更しました。それでもまだ動作しません。下向きの矢印キーを押すのが止まると、クラスが削除されます。 –

関連する問題